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

1👍

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.

👤jbochi

1👍

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.

Leave a comment