Ich habe Select-Tag mit vier Option Werte (1,2,3,4) erstellt. Wenn ich 4 und drücken Sie auf Senden, ändert sich zurück zu 1.Wählen Sie Option enthält Menge des Produkts für den Benutzer benötigt.So wie zu behalten Optionswert nach dem Drücken der Schaltfläche "Senden". Ich habe es so versucht, nachdem ich die Schaltfläche "Senden" gedrückt habe, wird der Wert wieder auf "1" zurückgesetzt. Gibt es eine Möglichkeit, dieses Problem zu lösen?Wie behält man den ausgewählten Optionswert nach dem Senden in django?
Meine Template-Datei,
<label for="quantity">Quantity</label>
<select id="quantity" name="quantity">
<option value="1" {% if quantity == '1' %}selected{% endif %}>1</option>
<option value="2" {% if quantity == '2' %}selected{% endif %}>2</option>
<option value="3" {% if quantity == '3' %}selected{% endif %}>3</option>
<option value="4" {% if quantity == '4' %}selected{% endif %}>4</option>
</select>
<input type="submit" value="Buy"/>
UPDATE: forms.py,
class SortForm(forms.Form):
RELEVANCE_CHOICES = (
(1,'1'),(2, '2'),(3,'3'), (4,'4'),(5,'5'),
)
sort = forms.ChoiceField(choices = RELEVANCE_CHOICES,label='Quantity')
views.py,
from .forms import SortForm
@csrf_protect
def buy_book(request,pk):
form = SortForm(request.POST or None)
my_products = Add_prod.objects.filter(pk=pk)
#Add_prod is the model class name
context = {"products":my_products}
if request.POST.get('quantity'):
for i in my_products:
rate= i.price
#price is the column name in the model class
u_quantity = request.POST.get('quantity')
Quantity=int(u_quantity)
total = rate*Quantity
context = {
"products":my_products,
"Total":total,
"form": form
}
return render(request,"buy_book.html",context)
In der Vorlagendatei ich diese Zeile hinzugefügt,
{{form.as_p}}
Jetzt bekomme ich leere Ausgabe. Ich denke, das Formular erkennt nicht in der Vorlage.
Warum ist rendern Sie die 'wählen 'manuell anstelle der Verwendung der [Forms API] (https://docs.djangoproject.com/en/1.9/topics/forms/). Es macht so etwas für dich. – solarissmoke
Abgesehen von den oben genannten, sollten Sie Ihre Ansicht (oder zumindest die Kontextdaten) zeigen – Sayse
@solarissmoke Ich aktualisierte meinen Code mit Formen api.Kann ich Sie auf meinen Fehler hinweisen? – Bhanukiran