Django在没有Django表单的情况下获取所选值
我在模板中有一个select表单,它希望在运行veiws.py中的add to cart函数时获取所选值并将其更新到OrderItem模型的item_选项字段,没有Django表单我怎么做 models.py:Django在没有Django表单的情况下获取所选值,django,django-models,django-views,Django,Django Models,Django Views,我在模板中有一个select表单,它希望在运行veiws.py中的add to cart函数时获取所选值并将其更新到OrderItem模型的item_选项字段,没有Django表单我怎么做 models.py: class product_option(models.Model): option_name = models.CharField(max_length=200) option1 = models.CharField(max_length=200) ... def _
class product_option(models.Model):
option_name = models.CharField(max_length=200)
option1 = models.CharField(max_length=200)
...
def __str__(self):
return self.option_name
class Product(models.Model):
....
product_option = models.ForeignKey(product_option, on_delete=models.SET_NULL, blank=True, null=True)
def __str__(self):
return self.product_name
def get_add_to_cart_url(self):
return reverse("add_to_cart", kwargs={'slug': self.slug})
class OrderItem(models.Model):
...
item_option = models.CharField(null=True, max_length=200)
模板:
{% for detail in products %}
<a class="btn btn-outline-dark mt-2 mb-3" href="{{ details.get_add_to_cart_url }}"><i class="fas fa-cart-plus mr-2"></i>add to cart</a>
<select class="form-control d-inline-block w-50">
<option value="{{ details.product_option.option1 }}">{{ details.product_option.option1 }}
</option>
<option value="{{ details.product_option.option2 }}">{{ details.product_option.option2 }}
</option>
....
</select>
{% endfor %}
def add_to_cart(request, slug):
item = get_object_or_404(Product, slug=slug)
order_item, created = OrderItem.objects.get_or_create(
....
)
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.item_option = request.GET.get('value')
order_item.save()
...
else:
....
else:
....
return redirect('product_detail', slug=slug)