为什么Django _meta分别存储字段和many_to_many字段?

时间:2011-12-21 08:01:40

标签: django django-models django-orm

我是django / python的初学者。我使用_meta来访问django模型的字段。我使用_meta.fields访问字段_meta.many_to_many来访问 many_to_many字段。使django如此单独存储字段的原因是什么?可能是many_to_fields包含在字段本身中,类型指定为ManyToManyField或更合适的类型。

初学者会高度赞赏指导。 :)

1 个答案:

答案 0 :(得分:2)

原因是这些字段有一些不同之处:

  • “normal”字段可以通过简单查询进行后续处理,而m2m字段需要JOIN;
  • m2m字段可以(并且有)中间模型通过连接,“普通”字段不能;
  • “normal”字段只返回单个对象,m2m字段返回queryset。