0
Ich habe eine Liste von Zonen, identifiziert durch ID (Integer). Wie kann ich die Zone erhalten, die die Postanforderung generiert hat?Django - Wert von POST-Anfrage
manual.html
{% if zone_list %}
<ul>
{% for z in zone_list %}
<b><p>{{z.name}}</p></b>
<form action="" method="post">
{% csrf_token %}
<input type="submit" name="{{z.id}}" value="ON"/>
<input type="submit" name="{{z.id}}" value="OFF"/><br>
<br>
<label>Tiempo</label>:
<input type="integerfield" name="Tiempo">
<input type="submit" name="{{z.id}}" value="Start">
</form>
{% endfor %}
</ul>
{% endif %}
Im views.py ich etwas, um die 1 zu ändern, dass die Zone
views.py
def manual(request):
if request.POST.has_key('1'):
z = Zone.objects.get(id = 1)
keyword = request.POST.get("1","")
if keyword == "ON":
#do something
if keyword == "OFF":
#do something
if keyword == "Start":
#do something
zone_list = Zone.objects.all()
context = {'zone_list':zone_list}
return render(request, 'irrigation_controller/manual.html', context)
erstellen [Modelform] (https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/) für eine Zone und dann mit [ modelformset] (https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/#model-formsets), um eine Reihe von Formularen zu erstellen. Dann können Sie auf diesem Formular in Ihren Ansichten iterieren und Wert eins nach dem anderen erhalten – Taranjeet
Oder Sie können ein verstecktes Eingabefeld hinzufügen, das die ID der Zone enthält und diese dann aus 'request.POST' herausziehen. – themanatuf
@themanatuf Danke für die Hilfe, ich habe das Problem mit einem versteckten Eingabefeld gelöst –