我正在尝试使用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)
答案 0 :(得分:1)
我相信你有自己的级联概念。根据您的模型,当您在Entry
上为外键关系调用delete时,将删除Cart
。如果你想要删除反向工作,你需要添加一些额外的代码来处理它。您可以查看Django cascade delete on reverse foreign keys有关如何实现该问题的一些想法(如果这是您需要的)。
答案 1 :(得分:0)
因为您没有关联条目和购物车,只需设置Entry ForeignKey并使用on_delete。当您删除购物车时,与之关联的条目将被删除。