Я хочу получить опцию, которую пользователь выбирает из моей формы Html select, а затем работать с ней. Я пробовал получить доступ к таким значениям, как print(request.POST.get('variations', None))
, и даже после выбора опции он возвращает None
. Я не совсем понимаю почему. Может ли кто-нибудь помочь мне с этим? Заранее спасибо!
Моя html форма:
<form class="form" method="POST" action="{{ object.get_add_to_cart_url }}">
{% csrf_token %}
{% for var in object.variation_set.all %}
<h5>Choose {{ var.name }}</h5>
<select class="form-control mb-4 col-md-4" title="variations">
{% for item in var.itemvariation_set.all %}
<option value="{{ item.value }}">{{ item.value|capfirst }}</option>
{% endfor %}
</select>
{% endfor %}
<div class="action">
<button class="btn btn-success">Add to Cart</button>
<button class="like btn btn-danger" type="button"><span class="fa fa-heart"></span></button>
</div>
</form>
Я хочу получить то, что выбрал пользователь, и работать с ними в этом представлении, то есть при добавлении продукта в корзину.
My views.py:
@login_required
def add_to_cart(request, slug):
item = get_object_or_404(Item, slug=slug)
order_item, created = OrderItem.objects.get_or_create(
item=item,
user= request.user,
ordered=False,
)
order_qs = Order.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
if order.items.filter(item__slug=item.slug).exists():
order_item.quantity += 1
order_item.save()
print(request.POST.get('variations', None))
messages.success(request, "Product quantity has been updated.")
else:
order.items.add(order_item)
print(request.POST.get('variations', None))
messages.success(request, "Product added to cart.")
return redirect("order-summary")
else:
ordered_date = timezone.now()
order = Order.objects.create(user=request.user, ordered_date=ordered_date)
order.items.add(order_item)
print(request.POST.get('variations', None))
messages.success(request, "Product added to cart.")
return redirect("order-summary")
return redirect("order-summary")