2011-12-21 66 views
1

我是django/python中的初學者。我使用_meta來訪問django模型的字段。我使用_meta.fields訪問字段_meta.many_to_many以訪問many_to_many字段。 django如何分開存儲這些字段的原因是什麼?這可能是因爲many_to_fields包含在字段本身以及指定爲ManyToManyField的類型或更合適的類型中。爲什麼Django _meta將字段和many_to_many字段分開存儲?

初學者將非常感謝指導。 :)

回答

2

的原因是,該領域有一些differencies:

  • 「正常」字段也可以通過簡單的查詢來retrireved,而M2M領域需要JOIN;
  • m2m字段可以有(並且有)中間模型連接通過,「正常」字段不能;
  • 「正常」字段只返回單個對象,m2m字段返回queryset。
+0

嗨,DrTyrsa。首先,感謝你的努力。我完全同意你的看法。我想知道的是,當我們只需要模型中所有字段的名稱時,爲什麼會出現差異? – 2011-12-21 08:14:48

+1

@SandipAgarwal我想知道的是,當你想要模型中所有字段的名稱時,爲什麼不使用'_meta.get_all_field_names()'? – DrTyrsa 2011-12-21 08:20:29

+0

它也給出了「反向關係名稱」。 [參考鏈接](http://django-model-internals-reference.readthedocs.org/en/latest/get_all_field_names.html) – 2011-12-21 08:41:21