Django – sammeln von daten aus einem HTML <select>

Ich habe ein paar Dokumente gesehen, wie man die Daten aus einer HTML-Anweisung in Django sammeln konnte, aber keiner von ihnen war mir sehr klar. Hat jemand ein echtes Arbeitsbeispiel zu teilen?

In meinem Fall habe ich so etwas in meiner Vorlagendatei:

<select title="my_options"> <option value="1">Select value 1</option> <option value="2">Select value 2</option> </select> 

Was passiert in den views.py, um den ausgewählten Wert zu sammeln? Vielen Dank!

2 Solutions collect form web for “Django – sammeln von daten aus einem HTML <select>”

Wenn es eine GET-Anfrage ist, request.GET['my_options'] . Wenn es ein POST ist, dann request.POST['my_options'] . Dies ist ein String, entweder "1" oder "2" (oder "<script>alert('I hacked you!')</script>" )

So oder so, es ist wahrscheinlich besser, die Django Formulare Framework verwenden , um Ihnen die Mühe des Schreibens der HTML, und die Desinfektion der zurückgegebenen Werte zu speichern.

Verwalten von Daten über POST

 def yourView(request): # Use '.get('id', None)' in case you don't receive it, avoid getting error selected_option = request.POST.get('my_options', None) if selected_option: # Do what you need with the variable 

Eine Sache, die nützlich sein kann mit Formen in Django ist, verschiedene Dinge zu machen, wenn Sie einen POST auf die URL machen oder einfach nur laden:

 def yourView(request): if request.POST: # If this is true, the view received POST selected_option = request.POST.get('my_options', None) if selected_option: # Do what you need to do with the variables return render_to_response(...) return render_to_response(...) 

Es gibt 2 render_to_response falls du verschiedene Dinge machen musst, wenn die Ansicht gerade geladen oder ein POST erhalten würde.

Verwalten von Daten über GET

 def yourView(request): # Use '.get('id', None)' in case you don't receive it, avoid getting error selected_option = request.GET.get('my_options', None) if selected_option: # Do what you need with the variable 
  • Verwenden Sie slugify in Vorlage
  • Wie bekomme ich ein verschachteltes Inline-Formular in einem Formular in Django?
  • Wie kann ich ein PIL Image Objekt in einer Vorlage anzeigen?
  • Django: Parse JSON in meiner Vorlage mit Javascript
  • Wie man <div> tag anstelle von <li> hinzufügt
  • Django: Wie man die CSRF_FAILURE_TEMPLATE überschreibt
  • Mehrstufige Vorlagenvererbung in Jinja2?
  • So deaktivieren Sie die HTML-Codierung bei der Verwendung von Context in django
  • Wie benutzt man iframes in django-cms
  • Django-Vorlagen - Druckkomma-getrennte ManyToManyField, Sortierergebnisliste in Dict?
  • Wie kann ich Bilddateien in Django-Vorlagen aufnehmen?
  • Python ist die beste Programmiersprache der Welt.