0

可以在反向关系中保护模型。例如在以下模型中:-

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,则不会将其删除,因为on_delete属性 onBar设置为models.PROTECT。那么,是否可以双向扩展这种保护?也就是说,如果尝试删除 的实例Bar,那么它是否可以像 一样受到保护Foo,有人可以提出解决方案吗?

4

1 回答 1

0

我没有为您提供完整的解决方案,但我建议您特别考虑使用Django Signal pre-delete。您将在该信号中检查bar_field_1实例中Bar是否为空,如果不为空则中止删除。

于 2020-09-08T15:29:42.833 回答