gpt4 book ai didi

python - Django 正确使用 Models.Cascade (on_delete)

转载 作者:太空宇宙 更新时间:2023-11-04 04:49:00 25 4
gpt4 key购买 nike

我正在尝试研究 models.cascade 语句的正确用法。我有两个型号 Cart 和 Entry。如果我删除一个条目,删除不会在购物车条目上更新。我已经通过管理界面检查过了。我的 models.py 如下:

class Cart(models.Model):
user = models.ForeignKey(User, null=True, blank=True, on_delete=models.CASCADE)
count = models.PositiveIntegerField(default=0)
total = models.DecimalField(default=0.00, max_digits=10, decimal_places=2)
updated = models.DateTimeField(auto_now=True)
timestamp = models.DateTimeField(auto_now_add=True)

objects = CartManager()

def __str__(self):
return "Cart:{} User:{} Items:{} Total:£{}".format(self.id, self.user, self.count, self.total)

class Entry(models.Model):
product = models.ForeignKey(Product, null=True, on_delete=models.CASCADE)
cart = models.ForeignKey(Cart, null=True, on_delete=models.CASCADE)
quantity = models.PositiveIntegerField(default=0)

最佳答案

我相信您对级联的概念倒置了。根据您的模型,当您针对外键关系在 Cart 上调用 delete 时,您的 Entry 将被删除。如果您希望删除操作反向进行,您需要添加一些额外的代码来处理它。你可以看看 Django cascade delete on reverse foreign keys有关如何实现它的一些想法(如果那是您需要的)。

关于python - Django 正确使用 Models.Cascade (on_delete),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48834945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com