Django ForeignKey不需要参照完整性?

Posted robinunix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 异常.

以上是关于Django ForeignKey不需要参照完整性?的主要内容,如果未能解决你的问题,请参考以下文章

SQLite 是不是支持参照完整性?

Mysql foreignkey 相关

数据库学习之旅——实验5

使用 MyISAM 的 Django 外键完整性

Django 如何使 ForeignKey 使用默认值?

Django:ForeignKey(models) 到不可见的模型?