Django ForeignKey不需要参照完整性?

我想在django模型中设置一个ForeignKey字段,它在某些时候指向另一个表.但我希望可以在这个字段中插入一个id,它引用另一个表中可能不存在的条目.因此,如果该行存在于另一个表中,我希望获得ForeignKey关系的所有好处.但如果没有,我希望这只被视为一个数字.

 

这可能吗?这是通用关系的用途吗?

最佳答案
很久以前就问过这个问题,但是对于新手来说,现在有一种内置的方法可以通过在ForeignKey上设置db_constraint = False来处理这个问题:

 

https://docs.djangoproject.com/en/1.9/ref/models/fields/#django.db.models.ForeignKey.db_constraint

 

customer = models.ForeignKey('Customer', db_constraint=False)

或者如果您想要可以为空并且不强制引用完整性:

 

customer = models.ForeignKey('Customer', null=True, blank=True, db_constraint=False)

我们在不能保证以正确的顺序创建关系的情况下使用它.

 

如果设置成 False``时,访问一个不存在的关联对象将抛出 ``DoesNotExist 异常.

posted @ 2019-09-02 11:12  番茄土豆西红柿  阅读(705)  评论(0编辑  收藏  举报
TOP