1
我想在删除品牌时防止产品被删除。这是我的代码:信号中的代码未执行
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)
任何想法为什么它不工作?
谢谢你这么多的on_delete = models.SET_NULL。 –
@AdamSilver,问题是什么? “产品”和“品牌”之间是否存在间接联系? – falsetru
我不认为有间接的联系,不知道为什么它不起作用。无论如何,on_delete完美运行并且更加清洁。 –