模型实例上的Django反向(on_delete)保护
可以在反向关系中保护模型。例如,在以下模型中:-模型实例上的Django反向(on_delete)保护,django,django-models,django-model-field,Django,Django Models,Django Model Field,可以在反向关系中保护模型。例如,在以下模型中:- class Foo(models.Model): foo_field1 = models.CharField(max_length=56, unique=True) class Bar(models.Model): bar_field1 = models.ForeignKey(Foo, on_delete=models.PROTECT, blank=True) bar_field2 = models.CharField(
class Foo(models.Model):
foo_field1 = models.CharField(max_length=56, unique=True)
class Bar(models.Model):
bar_field1 = models.ForeignKey(Foo, on_delete=models.PROTECT, blank=True)
bar_field2 = models.CharField(max_length=56, unique=True)
如果试图删除
Foo
的实例,则不会删除该实例,因为Bar
上的属性设置为models.PROTECT
。那么,是否有可能从两方面扩大这种保护?也就是说,如果试图删除Bar
的实例,那么它是否可以像Foo
一样得到保护,有人可以建议一个解决方案吗?我没有完整的解决方案给您,但我建议您考虑使用一个特定的预删除
。您可以在该信号中检查bar
实例中的bar\u字段\u 1
是否为空,如果不为空,则中止删除。是的,我想您可能是对的,我想django没有提供内置的功能来执行此操作。可能是因为这实际上会阻止对两个表的删除。无论如何,您能告诉我如何在预删除
中中止实例删除吗?