即使在Django中选择了选项,也会得到None



我想做的是获得用户从我的Html选择表单中选择的选项,然后使用它。我尝试过访问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>

我想获得用户选择的内容,并在此视图中使用它们,即在将产品添加到购物车时。

我的视图.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")

<select>的"title"属性更改为"name"。

<select class="form-control mb-4 col-md-4" title="variations">

<select class="form-control mb-4 col-md-4" name="variations">

最新更新