2017-06-29 2 views
0

Ich brauche eine Hilfe. Ich muss alle HTML-Feld Wert erhalten, wenn Benutzer auf andere Schaltfläche in views.py Datei mit Django und Python klicken wird. Ich erkläre meinen Code unten.Wie HTML-Feldwert ohne Formular mit Django und Python erhalten

<div class="boxwidthinnerdiv"> 
     Nuclear Mini Plant<br /><br /> 
     <select> 
      <option>Reactor 1</option> 
      <option>Reactor 2</option> 
      <option>Reactor 3</option> 
     </select> 
     <br /><br /><br /><br /> 
     <a href="{% url 'start' %}"><button class="buttondiv" type="button">Start</button></a> 
     <a href="{% url 'shut' %}"><button class="buttondiv">Shut Down</button></a> 
     <a href="{% url 'suspend' %}"><button class="buttondiv">Suspend</button></a> 
    </div> 

Hier, wenn der Benutzer auf Start-Taste der Auswahlfeldwert klicken, wird sollte in views.py Datei erhalten, die unten angegeben ist.

def start(request): 
    status = 1 

def shut(request): 
    status = 0 

def suspend(request): 
    status = 2 

Hier in jeder Aktion muss ich das ausgewählte Feld Wert erhalten. Bitte hilf mir.

+0

Warum möchten Sie kein Formular verwenden? Sie können die Aktions-URL des Formulars basierend auf einem Klick auf die Schaltfläche dynamisch festlegen, wenn jede Übermittlung an eine andere URL gesendet werden soll. Schauen Sie sich [diese Antwort] an (https://stackoverflow.com/questions/22985643/change-form-submission-url-based-on-button-clicked) –

+0

Nun, das kann unmöglich funktionieren. Warum willst du kein Formular benutzen? –

+0

@DanielRoseman: Können Sie bitte Ihre Idee per Post teilen? – subhra

Antwort

1

Sie benötigen dafür nicht mehrere Ansichten oder Links. fügen Sie einfach einen Namen für Taste (name = „Typ“ zum Beispiel) und Wert für jeden von ihnen wie folgt aus:

<button name="type" value="start" class="buttondiv" type="button">Start</button> 
    <button name="type" value="shut-down" class="buttondiv">Shut Down</button> 
    <button name="type" value="suspend" class="buttondiv">Suspend</button> 

dann Ihrer Ansicht nach Prüfung, die man, indem man den Typ Wert von Post-Anforderung gedrückt wird. Beispiel:

#views.py 

def your_view(request): 
    if request.method == "POST": 
     if request.POST.get('type') and request.POST.get('type') == "start": 

      #do something when "Start" button pressed. 

     elif request.POST.get('type') and request.POST.get('type') == "shut-down": 

      #do something when "Shut Down" button pressed. 

     elif request.POST.get('type') and request.POST.get('dl-type') == "suspend": 

      #do something when "Suspend" button pressed. 
    else: 
     #do something when request is not post. 
     #redirect or render a template for example. 

alle Ihre Eingaben wie wählen Sie wird wie eine normale Form zur Verfügung stehen.

Sie können die Post-Anfrage ausdrucken, um zu sehen, was verfügbar ist, und mehr über die Funktionsweise erfahren.