TLDR;make_object_list
возвращает все объекты для данного YearArchiveView в контексте представления под object_list
. По умолчанию make_object_list
является False, что приведет к тому, что возвращаемый контекст object_list
будет пустым.
Так что django documentation немного сложно понять на этой части. Но, надеюсь, это помогает (подсказка: глядя на source code действительно помогает).
YearArchiveView
будет возвратом по умолчанию в контексте следующего:
- date_list: A Дата QuerySet возвращающей все месяцы, которые имеют объекты в них.
- год: дата объекта за данный год.
- next_year: объект даты для первого дня следующего года.
- previous_year: объект даты в течение первого дня предыдущего года.
В этом списке вы увидите, что объекты запроса для заданного года при возврате пустые.
make_object_list Так сверху мы знаем, что контекст по умолчанию будет возвращать число значений, относящихся к датам объектов в текущем году,, предыдущий и следующий, но без каких-либо реальных объектов QuerySet из базы данных.
Значение make_object_list
, которое должно быть истинным в YearArchiveView, приведет к тому, что все объекты запроса для данного года будут переданы обратно через контекст, чтобы они могли использоваться в представлении.
В шаблоне объекты запроса будут доступны в контексте object_list
.
Когда в шаблоне для данного YearArchiveView, вы можете использовать:
{% for item in object_list %}
<strong>item.title</strong> - {{ item.date }}
{% endfor %}
Это сейчас очень понятно для меня, но все же нужно работать над этим, чтобы понять его полностью. И еще один вопрос возникает из-за этого во мне, и именно поэтому тогда другие общие представления, такие как ** MonthArchiveView ** и ** DayArchiveView **, тоже не имеют этого атрибута? –
Я считаю, что для этого есть две основные причины. Во-первых, количество возвращаемых данных. Во-вторых, вы чаще всего суммируете статьи ежемесячно или ежедневно, а не через год. –