Почему Django _meta хранит поля и поля many_to_many отдельно? - PullRequest
1 голос
/ 21 декабря 2011

Я новичок в django / python. Я использую _meta для доступа к полям модели django.Я использую _meta.fields для доступа к полям и _meta.many_to_many для доступа к полям many_to_many .По каким причинам django хранит поля отдельно?Может быть так, что many_to_fields включены в сами поля, а тип указан как ManyToManyField или что-то более подходящее.

Руководство будет высоко оценено начинающим.:)

1 Ответ

2 голосов
/ 21 декабря 2011

Причина в том, что поля имеют некоторые различия:

  • "нормальное" поле может быть получено простым запросом, в то время как поле m2m нуждается в JOIN; поле
  • m2m может иметь (и имеет) промежуточную модель для подключения через «нормальное» поле не может;
  • «нормальное» поле просто возвращает один объект, поле m2m возвращает набор запросов.
...