您在Django模型中使用外键会自动将_ id添加到相应字段,同时保存在db中。 Django模型中的一对一和多对多关系是否发生同样的事情?
答案 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
。这种关系不在该表的列中表示,而是由单独的表(链接到该关系中的两个模型)表示。