异常值:(无法解析关键字)在 Django 中
Exception Value: (Cannot resolve keyword) In Django
我将要创建一个简单的网上商店,目前正在处理我的“添加到购物车”按钮。
当我现在点击添加到购物车按钮时,returns出现如下错误:
FieldError at /add-to-cart/box-1/
Exception Value:
Cannot resolve keyword 'ordered' into field. Choices are: box, box_id, id, order, quantity, title
相关代码
views.py:
def add_to_cart(request, slug):
# Get the item from the slug via get_object_or_404 method
box = get_object_or_404(Box, slug=slug)
# Check if the user have an order
order_box = OrderBox.objects.create(box=box)
order_qs = OrderBox.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
# Check if order item is in the order
if order.box.filter(box__slug=box.slug).exists():
order_box.quantity += 1
order_box.save()
else:
ordered_date = timezone.now()
order = Order.objects.create(user=request.user, ordered_date=ordered_date)
order.items.add(order_box)
return redirect('webshop:shop-box', slug=slug)
models.py
class Order(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
items = models.ManyToManyField(OrderBox)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField()
ordered = models.BooleanField(default=False)
def __str__(self):
return self.user.username
我一直在搜索,可以找到关于这个主题的不同问题,但是我不明白问题是什么。
如果您能帮助我找出错误的地方,我将不胜感激,谢谢!
看起来 OrderBox
没有名为 ordered
(或 user
的字段),您的 Order
模型有。因此,在不太了解您的项目的情况下,您需要为您的 Order
模型而不是 OrderBox
创建一个查询集,或者通过它们相关的 Order
模型过滤您的 OrderBox
查询集(如果它们是相关的,则从错误消息中列出的可用字段看来是相关的)。如果是这种情况,您可以
尝试 OrderBox.objects.filter(order__user=request.user, order__ordered=False)
我将要创建一个简单的网上商店,目前正在处理我的“添加到购物车”按钮。
当我现在点击添加到购物车按钮时,returns出现如下错误:
FieldError at /add-to-cart/box-1/
Exception Value:
Cannot resolve keyword 'ordered' into field. Choices are: box, box_id, id, order, quantity, title
相关代码
views.py:
def add_to_cart(request, slug):
# Get the item from the slug via get_object_or_404 method
box = get_object_or_404(Box, slug=slug)
# Check if the user have an order
order_box = OrderBox.objects.create(box=box)
order_qs = OrderBox.objects.filter(user=request.user, ordered=False)
if order_qs.exists():
order = order_qs[0]
# Check if order item is in the order
if order.box.filter(box__slug=box.slug).exists():
order_box.quantity += 1
order_box.save()
else:
ordered_date = timezone.now()
order = Order.objects.create(user=request.user, ordered_date=ordered_date)
order.items.add(order_box)
return redirect('webshop:shop-box', slug=slug)
models.py
class Order(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
items = models.ManyToManyField(OrderBox)
start_date = models.DateTimeField(auto_now_add=True)
ordered_date = models.DateTimeField()
ordered = models.BooleanField(default=False)
def __str__(self):
return self.user.username
我一直在搜索,可以找到关于这个主题的不同问题,但是我不明白问题是什么。 如果您能帮助我找出错误的地方,我将不胜感激,谢谢!
看起来 OrderBox
没有名为 ordered
(或 user
的字段),您的 Order
模型有。因此,在不太了解您的项目的情况下,您需要为您的 Order
模型而不是 OrderBox
创建一个查询集,或者通过它们相关的 Order
模型过滤您的 OrderBox
查询集(如果它们是相关的,则从错误消息中列出的可用字段看来是相关的)。如果是这种情况,您可以
尝试 OrderBox.objects.filter(order__user=request.user, order__ordered=False)