database - Django : "Soft" ForeignField without database integrity checks

标签 database django-models foreign-keys constraints

我有一个包含多个 Django“应用程序”的 Django 项目。其中之一具有表示来自外部源的数据的模型(我不控制此数据)。

我希望我的其他应用程序能够引用这个“外部应用程序”,但我想避免数据库完整性检查的所有模糊。我不希望数据库对这些“软外键”有任何限制。

你知道我如何编写一个自定义字段来模拟真正的 Django ForeignKey 而不会在数据库上创建硬约束吗?

也许这已经存在,但我在 Google 上没有任何运气。

在此先感谢您的帮助:-)

注意:我知道 generic relations具有 content_types 的系统。但我不想要一般关系。我只希望特定关系与已识别模型没有严格的完整性约束。

编辑:

我找到了相关链接:

但是我没有找到我的问题的正确答案。 :(

2012 年编辑,6 月 4 日:

我已经深入研究了 django 的代码以找到需要做的事情,但我认为仅仅子类化 ForeignKey 是不够的。你能给我一些关于如何做到这一点的指导吗?

注意:我使用 South 来管理我的数据库架构,所以我认为我也需要为此做些事情。但它可能超出了这里的主题:)

最佳答案

如果您只想禁用字段上的 ForeignKey 约束检查,则只需将 db_constraint=False 添加到该字段即可。

user = models.ForeignKey('User', db_constraint=False)

另见: Django - How to prevent database foreign key constraint creation

关于database - Django : "Soft" ForeignField without database integrity checks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10623854/

相关文章:

mysql - 如何调查 MySQL 错误

mysql - 使用 SQL 从数据库过滤数据

mysql - DELETE CASCADE 无法自引用深度超过 15 级的 MySQL 表

php/mysql CI 每当我将数据插入子表时,它不会存储父表的 id

mysql - 我可以使用一个表来更新另一个表中的信息吗?

php - Joomla 中的数据库迁移

django - 如何知道 Django 中的数据库何时准备就绪?

django-models - neo4django: AttributeError: 类型对象 'Model' 没有属性 '__metaclass__'

python - Django:保存前修改模型的字段

python - 如何使用 Django 模型字段定义保持 DRY