Я создал тэг select с четырьмя значениями параметров (1,2,3,4). Когда я выбираю 4 и нажимаю кнопку отправки, он возвращается обратно к опции 1.Выбор содержит количество продукта, необходимого для пользователя. Так как сохранить значение параметра после нажатия кнопки отправки. Я пробовал, как это, после того, как я нажимаю кнопку, значение кнопки возвращается к 1.Есть ли какой-либо способ преодолеть эту проблему?Как сохранить значение опции выбора после отправки в django?
Мой файл шаблона,
<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)
В файле шаблона я добавил эту строку,
{{form.as_p}}
Теперь я получаю пустой вывод. Я думаю, что форма не распознается в шаблоне.
Почему вы рендеринга 'выберите 'вручную вместо использования [Forms API] (https://docs.djangoproject.com/en/1.9/topics/forms/). Для вас это так. – solarissmoke
Помимо вышесказанного, вы должны показать свое представление (или, по крайней мере, контекстные данные) – Sayse
@solarissmoke Я обновил свой код, используя формы api.Can u point out моя ошибка? – Bhanukiran