<h1>Number of posts: {{ posts.count }} </h1>
На самом деле, в этом очень специфическом случае использование фильтра шаблона length
- который просто вызывает len()
- было бы более эффективным. Это вызвано тем, что вызов .count()
для набора запросов, который не был оценен, заставляет его вернуться в базу данных для выполнения SELECT COUNT
, тогда как len()
заставляет набор запросов оцениваться.
Очевидно, что первый обычно более эффективен, если вы не собираетесь оценивать полный набор запросов тут же. Но здесь мы немедленно собираемся выполнить итерацию по всему набору запросов, поэтому выполнение count
просто вводит дополнительный ненужный вызов базы данных.
Итак, все, что здесь лучше, это:
<h1>Number of posts: {{ posts|length }} </h1>