Django只从OneToOneField中删除一个对象并检索i

2024-04-23 17:10:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Django创建一个简单的网站,用户可以使用购物车。他们可以将商品添加到购物车中,然后再购买(将购买的商品添加到另一个模型中)。嗯,我是Django的新人,我有一个问题。在购买产品后,我删除购物车对象,并创建另一个对象购物车新的空。第一次我买的产品都很好,但是第二次我试着付款。我总是得到空的购物车对象,虽然如果我检查数据库,我可以看到那里有正确的产品。。。在

我要把我的django的模型留在这里:

from __future__ import unicode_literals

from django.db import models
from django.contrib.auth.models import User

class Cart(models.Model):
    user = models.ForeignKey(User, null=True)
    items = models.ManyToManyField(Item, null=True)
    money = models.FloatField(default=0)
    def __str__(self):
        aux = ""
        for item in self.items.all():
            aux += "\n"+"["+item.name+"]" + str(item.price)+ " " + item.type + " " + str(item.description)+"\n"
        aux += "\n\nTotal Price: "+str(self.money)
        return aux

class Client(models.Model):
    user = models.OneToOneField(User)
    cart = models.OneToOneField(Cart, null=True, on_delete=models.SET_NULL)
    money = models.FloatField(default=0)
    def __str__(self):
        return "["+str(self.user)+"]"+str(self.money)

还有我的支付、购买和添加功能:

^{pr2}$

我不明白为什么我不从客户的购物车里取回任何商品。。。用户第一次向购物车中添加一些东西没问题,当我删除购物车对象并为用户创建一个新的购物车对象时,问题就来了——也许我的模型弄错了。。。如果有人能为我指出正确的方向,我将不胜感激


Tags: 对象django用户from模型importself产品
1条回答
网友
1楼 · 发布于 2024-04-23 17:10:23

因为您实际上是在尝试从购物车中清除商品,而不是删除购物车对象并重新创建它。尝试清除购物车对象上项目的ManyToManyField:

Cart.objects.filter(user=user)[0].items.clear()

相关问题 更多 >