Django一对一关系

时间:2018-08-13 11:51:49

标签: python django django-models

您在Django模型中使用外键会自动将_ id添加到相应字段,同时保存在db中。 Django模型中的一对一和多对多关系是否发生同样的事情?

1 个答案:

答案 0 :(得分:0)

简而言之:它发生在OneToOneField s中,不是发生在ManyToManyField s中。

OneToOneField实际上只是一个ForeignKey字段,但是带有unique=True和一些小的更改(例如,反向不是model_set,而只是{ {1}},而且相反,它也直接导致模型对象,而不是查询集,因为最多有一个这样的对象)。因此,对于model,我们将有一个OneToOneField列。

请注意,在使用fieldname_id / ForeignKey的情况下,仅在定义关系的位置存在 列,而不是在定位模型中。如果OneToOneField到{{1}的范围是A,则可以查询OneToOneField,但是B模型上不存在b_id

对于不是{em> 情况的a_id。这种关系不在该表的列中表示,而是由单独的(链接到该关系中的两个模型)表示。