Javascript 位于/添加到购物车/测试产品1的字段错误

Javascript 位于/添加到购物车/测试产品1的字段错误,javascript,python,html,css,django,Javascript,Python,Html,Css,Django,大家好,我需要这里的帮助,请在尝试我的dd到购物车按钮时,我收到了这条消息 位于/添加到购物车/测试产品1的字段错误/ 无法将关键字“ordered”解析为字段。选项包括:标识、项目、项目标识、订单、数量 my views.py for the add to cart function. def add_to_cart(request, slug): item = get_object_or_404(Item, slug=slug) order_item, created =

大家好,我需要这里的帮助,请在尝试我的dd到购物车按钮时,我收到了这条消息

位于/添加到购物车/测试产品1的字段错误/ 无法将关键字“ordered”解析为字段。选项包括:标识、项目、项目标识、订单、数量

my views.py for the add to cart function.

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]
        # check if the order item is in the order
        if order.items.filter(item__slug=item.slug).exists():
            order_item.quantity += 1
            order_item.save()
        else:
            ordered_date = timezone.now()
            order = Order.objects.create(user=request.user, 
                           ordered_date=ordered_date)
            order.items.add(order_item)
        return redirect("store:product", slug=slug)
我的模特

class Order(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,
                             on_delete=models.CASCADE)
    item = models.ManyToManyField(OrderItem)
    start_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)

    def __str__(self):
       return self.user.username

您正在尝试对
OrderItem
模型执行
get\u或\u create
。但是,此模型不包含字段
ordered
(如您在评论中确认的)。字段
ordered
仅存在于
Order
模型中,因此Django将引发异常,说明该字段在模型中不存在。

这意味着
ordered=False
不作为字段存在。请注意,这是
OrderItem
模型,而不是
Order
模型。这是我的订单项目模型OrderItem(models.model):item=models.ForeignKey(item,on_delete=models.CASCADE)quantity=models.IntegerField(默认值=1)def_u str_u(self):返回f“{.item.quantity}of{self.item.title}”Hi!所以在答案中“只写代码”是不好的做法。你能多加一点背景吗?通常,对你所做的一点解释就足够了。谢谢好的,斯佩尔西科。我是新来的,但我确保我的客户命名与我在订单模型中使用的完全相同。这就是我在我的购物车func中的views.py中使用的内容。当我订购或创建方法时。如果您在order中调用的内容或在中创建的方法未在您查询的确切模型中引用,则可能会出现字段错误。谢谢你的更正,兄弟。不用担心,不客气。下次要考虑的事项:-)
then include all naming's to your view.py.```

```my views```
```in the views.py in my cart function, I used the order, 
created method whereby i queried my Order Class model from my model.py. 
then I made sure that the object that is being called has also be 
mentioned also in my model class. just like the customer object. 
if the object been called hasn't been mentioned you are must
 likely to get a field error.```

    def cart(request):
        
        if request.user.is_authenticated:
            customer = request.user.customer
            order, created = Order.objects.get_or_create(customer=customer, complete=False)
            items = order.orderitem_set.all()
        else:
            items = []
    
        context = {'items':items}
        return render(request, 'shop/cart.html', context)
    
    class Order(models.Model):
        customer = models.ForeignKey(Customer, on_delete=models.SET_NULL, null=True)
        date_ordered = models.DateTimeField(auto_now_add=True)
        complete = models.BooleanField(default=False, null=True, blank=False)
        transaction_id = models.CharField(max_length=200, null=True)
    
        def __str__(self):
            return str(self.id)

    class OrderItem(models.Model):
        product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
        order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True)
        quantity = models.IntegerField(default=0, null=True, blank=True)
        date_added = models.DateTimeField(auto_now_add=True)
    
        def __str__(self):
            return str(self.product.id)