开发者

On a database level, what is the difference between [Django] OneToOneFiled and ForeignKey(Model, unique = True)

开发者 https://www.devze.com 2022-12-17 11:24 出处:网络
Both seems to be generating integer NOT NULL UNIQUE REFERENCES databaase columns. Edit: My question is only about at the database level.开发者_Go百科 (Not in the Django ORM.)ForeignKey fields should

Both seems to be generating integer NOT NULL UNIQUE REFERENCES databaase columns.

Edit: My question is only about at the database level.开发者_Go百科 (Not in the Django ORM.)


ForeignKey fields should be used for 1 to n relationships and OneToOneField should be used to 1 to 1 relationships.

On database level, the foreign key is unique for OneToOneFields and that's not the case for ForeignKeys.


Your answer is on the official documentation.

Basically, the difference is that when you try to access the ForeignKey from your object, you'll get another object, and not a queryset as you would in the ForeignKey.

From the docs:

class OneToOneField(othermodel[, parent_link=False, **options])

A one-to-one relationship. Conceptually, this is similar to a ForeignKey with unique=True, but the "reverse" side of the relation will directly return a single object.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号