2016-04-20 8 views
0

Ich möchte Dropdown-Liste in Django-Formulare erstellen. Ein Weg ist es, die Optionen zu erhalten und es an die Vorlage von views.py Andere Weise ist über forms.py, aber ich bin mir nicht sicher, wie das zu tun.Obwohl der Code zu tun, ist es nicht für mich benutzbar, wie ich will um Optionen zu generieren, die von dem Benutzer abhängen, in dem sie sich angemeldet haben (das heißt, den Parameter request zu verwenden). Können Sie vorschlagen, wie das geht? Die erste Methode der Weitergabe über views.py funktioniert bis zu dem Ausmaß der Generierung eines Dropdown-Menüs, aber ich bin nicht in der Lage, den Wert der ausgewählten Option aus Anfrage zu erhalten.Es gibt einen Nullwert. Hier ist mein Code: VorlageDynamische Django-Formulare

<script type="text/javascript"> 

$(document).ready(function() { 
    $('#remove_form').submit(function() { // catch the form's submit event 
     $.ajax({ // create an AJAX call... 
      data: $(this).serialize(), // get the form data 
      type: $(this).attr('method'), // GET or POST 
      url: '/remove/', // the file to call 
      success: function(response) { // on success.. 
       $('#test').html("<p style='color:green;margin-left:40%;margin-right:40%;'>Submitted!</p>"); // update the DIV 

      }, 
      error: function(e, x, r) { // on error.. 
       $('#err').html(e); // update the DIV 
      } 
     }); 
     return false; 
    }); 
}); 

</script> 

...... 
...... 

<form method="POST" id="remove_form" action="">{% csrf_token %} 
     <select id="remove"> 
     {% for i,p in dropdown %}  
     <option value="{{i}}">{{p}}</option> 
     {% endfor %} 
     </select> 
     {{remove|crispy}} 
     <input class="btn btn-primary" type="submit" value="Remove"> 
</form> 

Beachten Sie auch, dass ich diese Form von einer Ansicht bin Rendering aber die Daten geht in eine andere Ansicht für die Verarbeitung über Ajax-Aufruf.

+0

Sie scheinen nach der Lösung und nicht nach dem Problem zu fragen ... Für was soll die Dropdown-Liste sein? – Sayse

+0

Dropdown-Liste würde Kurse von einer Person gewählt haben und dies würde aus der Datenbank entsprechend der ID des Benutzers abgerufen werden. @Sayse – CodeFanatic23

Antwort

0
<select id="remove"> 

Die select Tag nimmt ein name Attribut.

<select name="remove" id="remove"> 

Dann funktioniert Ihr Formular. http://codepen.io/C14L/pen/dMKqPE

+0

sieht aus wie ich einen Fehler gemacht habe in Name und ID ... danke für die Aufräumung! – CodeFanatic23