你在 Django 模型中自动使用外键 _ id 被添加到相应的字段中,同时保存在 db 中。 在 Django 模型中,一对一和多对多的关系是否也发生了同样的情况?
简而言之:它发生在OneToOneField
秒内,而不是发生在ManyToManyField
秒内。
OneToOneField
实际上只不过是一个ForeignKey
字段,但具有unique=True
,以及一些小的变化(例如,反向不是model_set
,而只是model
,此外,反向也直接导致模型对象,而不是查询集,因为最多有一个这样的对象(。对于OneToOneField
,我们将有一个fieldname_id
列。
请注意,对于ForeignKey
/OneToOneField
,此类列仅存在于您定义关系的位置,而不是定位模型。如果A
有要B
OneToOneField
,则可以查询b_id
,但B
模型上不存在a_id
。
对于ManyToManyField
来说,情况并非如此。这种关系不是在该表的列中表示的,而是由一个单独的表(链接到关系中的两个模型(表示。