Django - показать длину набора запросов в шаблоне
В моем html файле, как я могу вывести размер набора запросов, который я использую (для целей моей отладки)
Я пробовал
{{ len(some_queryset) }}
но это не сработало. Каков формат?
Ответы
Ответ 1
Дайте {{ some_queryset.count }}
попытку.
Это лучше, чем использование len (которое можно вызвать с помощью {{ some_queryset.__len__ }}
), поскольку оно оптимизирует SQL, сгенерированный в фоновом режиме, только для получения количества записей вместо самих записей.
Ответ 2
some_queryset.count()
или {{some_queryset.count}}
в вашем шаблоне.
Не используйте len
, он намного менее эффективен. База данных должна выполнять эту работу. См. Документацию о count()
.
Однако, принимая во внимание рекомендацию о буфере, если вы все равно планируете итерировать записи, вы можете использовать len
, который будет включать в себя разрешение запроса и внесение результирующих строк в основную память - это не будет идти потому что вы все равно будете посещать эти ряды. На самом деле это может быть быстрее, в зависимости от времени ожидания соединения db, но вы всегда должны измерять.
Ответ 3
Просто выделите комментарий @Yuji'Tomita'Tomita выше в качестве отдельного ответа:
Существует фильтр с именем length
для вызова len()
на все.
Итак, вы можете использовать:
{{ some_queryset|length }}