[英]Django Correct Usage of Models.Cascade (on_delete)
我正在嘗試使用 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 級聯刪除,以了解有關如何實現的一些想法(如果這是您需要的)。
因為您沒有關聯Entry和Cart ,只需設置 Entry ForeignKey 並使用 on_delete。 當您刪除購物車時,與其關聯的條目將被刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.