Подтвердить что ты не робот

Django - показать длину набора запросов в шаблоне

В моем html файле, как я могу вывести размер набора запросов, который я использую (для целей моей отладки)

Я пробовал

{{ len(some_queryset) }}

но это не сработало. Каков формат?

4b9b3361

Ответ 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 }}