Как получить значение поля из формы в шаблоне django?
Как получить данные из поля формы шаблона? Форма задается в явном виде. Мне нужно получить два значения: increment и decrement, а потом обработать из в представлении. Приведу код.
шаблон
<form action="{% url 'cart:cart_modificate' product.id %}" method="post">
{% csrf_token %}
<input type="hidden" name="product" value="{{cart.product}}" />
<input type="hidden" name="increment" value="increment" />
<input type="submit" value="+" />
</form>
<form action="{% url 'cart:cart_modificate' product.id %}" method="post">
{% csrf_token %}
<input type="hidden" name="product" value="{{cart.product}}" />
<input type="hidden" name="decrement" value="decrement" />
<input type="submit" value="-" />
</form>
начало представления
def cart_modificate(request, product_id):
cart = Cart(request)
product = get_object_or_404(Product, id=product_id)
increment =
Можно, конечно создать два представления для каждой формы. Но мне хочется обойтись одним.
Ответы (1 шт):
Автор решения: Михаил Болеев
→ Ссылка
Все получилось.
шаблон:
<form action="{% url 'cart:cart_modificate' %}" method="post">
{% csrf_token %}
<input type="hidden" name="id" value="{{product.id}}" />
<input class="cart_form" name="button" type="submit" value="+" />
<input class="cart_form" name="button" type="submit" value="-" />
</form>
представление:
def cart_modificate(request):
cart = Cart(request)
if request.method == 'POST':
product_id = request.POST['id']
button = request.POST['button']
product = get_object_or_404(Product, id=product_id)
if button == '+':
increment = button
decrement = None
else:
increment = None
decrement = button
cart.modificate(product, increment, decrement)
return redirect('cart:cart_detail')