【发布时间】:2010-01-14 11:50:41
【问题描述】:
两者似乎都在生成 integer NOT NULL UNIQUE REFERENCES 数据库列。
编辑:我的问题仅涉及数据库级别。 (不在 Django ORM 中。)
【问题讨论】:
两者似乎都在生成 integer NOT NULL UNIQUE REFERENCES 数据库列。
编辑:我的问题仅涉及数据库级别。 (不在 Django ORM 中。)
【问题讨论】:
ForeignKey 字段应用于 1 对 n 关系,OneToOneField 应用于 1 对 1 关系。
在数据库级别,外键对于 OneToOneFields 是唯一的,而对于 ForeignKeys 则不是这样。
【讨论】:
ForeignKey(Model, unique = True),FK 显然是独一无二的,所以你是说没有差异?
你的答案在官方documentation。
基本上,不同之处在于,当您尝试从对象访问 ForeignKey 时,您将获得另一个对象,而不是像在 ForeignKey 中那样的查询集。
来自文档:
类 OneToOneField(othermodel[, parent_link=False, **options])
一对一的关系。从概念上讲,这类似于具有 unique=True 的 ForeignKey,但关系的“反向”端将直接返回单个对象。
【讨论】:
On a database level 是否有任何 差异。