我想在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
异常.