gpt4 book ai didi

python - 信号中的代码未执行

转载 作者:太空宇宙 更新时间:2023-11-03 18:34:37 26 4
gpt4 key购买 nike

我想防止删除品牌时产品被删除。这是我的代码:

from django.db.models.signals import pre_delete
from shop.models import Brand, Product


def before_deleting_brand(sender, instance, **kwargs):
"""
Detach products from the brand upon brand deletion
"""

Product.objects.filter(brand=instance).update(brand=None) <<< LINE HAS NO EFFECT


pre_delete.connect(before_deleting_brand, sender=Brand)

知道为什么它不起作用吗?

最佳答案

检查是否有任何模型将Product模型间接链接到Brand

顺便说一句,指定 on_delete参数是防止删除引用对象的更简单方法。

例如:

class Product(models.Model):
brand = models.ForeignKey(Brand, blank=True, null=True, on_delete=models.SET_NULL)

关于python - 信号中的代码未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21820820/

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