2016-04-22 5 views
0

Ich versuche, ein Web-Front-End zu erstellen, um verschiedene Verwaltungsaufgaben mit Django zu tun. Ich habe noch nie ein Frontend gebraucht, aber jetzt wollen sie, dass verschiedene BUs sie nutzen können und sie brauchen etwas Hübsches, um einen Knopf zu drücken. Also, was ich tun möchte, ist:Poping Backend-Skript für Django Formular

  1. Benutzereingaben Formulardaten und sendet es
  2. Site-Zugriff des externen Skript unter Verwendung der Post-Daten als args
  3. Benutzer zur Bestätigungsseite umgeleitet wird

Rechts Jetzt kann ich Daten posten und ich kann das Skript mit Argumenten ausführen, ich weiß einfach nicht, wie ich die beiden kombinieren soll. Jede Hilfe oder Hinweise zu dem, was ich untersuchen sollte, würde sehr geschätzt werden. Ich habe keine Schnipsel geposted, weil ich sie sterilisieren müsste, aber auf Anfrage kann ich, wenn es nötig ist, um zu helfen.

Antwort

1

Die einfachste Möglichkeit, direkt zu interagieren, ist die Verwendung von Ajax, wobei Sie Ajax Post verwenden, um JSON an Django zu senden und dann die Argumente als dict() zu behandeln. Hier ein Beispiel:

In-Browser (JQuery/JavaScript):

function newModule() { 

     var my_data = $("#my_element").val(); // Whatever value you want to be sent. 

     $.ajax({ 
      url: "{% url 'modules' %}",  // Handler as defined in Django URLs. 
      type: "POST",      // Method. 
      dataType: "json",     // Format as JSON (Default). 
      data: { 
       path: my_data,    // Dictionary key (JSON). 
       csrfmiddlewaretoken: 
         '{{ csrf_token }}' // Unique key. 
      }, 

      success: function (json) { 

       // On success do this. 

      }, 

      error: function (xhr, errmsg, err) { 

       // On failure do this. 

      } 

     }); 

In Server-Engine (Python):

def handle(request): 

    # Post request containing the key. 
    if request.method == 'POST' and 'my_data' in request.POST.keys(): 

     # Retrieving the value. 
     my_data = request.POST['my_data'] 

    # ... 

Alles was Sie jetzt tun müssen, um Ihre HTML-Formular lenken um die JavaScript-Funktion aufzurufen und die Daten an die Engine zu übermitteln.

Um den Benutzer zu einer anderen Seite auf Erfolg umleiten, können Sie dies in Ihrer success Funktion:

window.location.href = "http://www.example.com"; 

, die auf einen Anker-Tag (Link) eine Reaktion ähnlich den Klick simuliert.

Hoffe, das hilft.