在删除的情况下,您可以使用
on_delete=models.PROTECT
. 在另一种情况下你可以加上
unique=True
address=models.ForeignKey(Address, unique=True, on_delete=models.PROTECT)
一种新的方法是创建一个模型来引用公司和个人的地址,并且能够禁止使用相同的地址id创建:
class AddressExample(models.Model):
id_address = models.ForeignKey(Address, unique=True,on_delete=models.PROTECT)
id_person = models.ForeignKey(Person, blank=True, null=True, unique=True, on_delete=models.PROTECT)
id_company = models.ForeignKey(Person, blank=True, null=True, unique=True, on_delete=models.PROTECT)
注意我用了
blank=True, null=True
class AddressExample(models.Model):
id_address = models.ForeignKey(Address, unique=True,on_delete=models.PROTECT)
id_person = models.ForeignKey(Person, blank=True, null=True, unique=True, on_delete=models.PROTECT)
id_company = models.ForeignKey(Person, blank=True, null=True, unique=True, on_delete=models.PROTECT)
class Meta:
unique_togther = ('id_address', 'id_person', 'id_company')
希望有帮助。