Как подсчитать количество моего QuerySet. Django

Ну, у меня есть следующая функция:

employees_birthday = Employees.objects.filter(EmployeeDataNasc__gte=first_day, EmployeeDataNasc__lte=last_day)

Она служит для возврата сотрудников, родившихся между датами. Она возвращает:

<QuerySet [<Employees: Alberto Santos>, <Employees: Josney Arman>]>

Но, я бы хотел просто вывести количество сотрудников в QuerySet, т.е. сделать функцию Count.

Может ли кто-нибудь помочь мне с синтаксисом?

Вы можете использовать метод .count() для кверисета, чтобы получить количество элементов в кверисете. Вот обновленный код:

employees_birthday = Employees.objects.filter(EmployeeDataNasc__gte=first_day, EmployeeDataNasc__lte=last_day)

employee_count = employees_birthday.count()

В данном примере employees_birthday - это кверисет, содержащий всех сотрудников, родившихся между указанными датами. Метод .count() возвращает количество элементов в кверисете, которое хранится в переменной employee_count.

Затем вы можете использовать переменную employee_count в своем коде для отображения количества сотрудников, например:

print("Number of employees born between {} and {}: {}".format(first_day, last_day, employee_count))

Если вы все равно собираетесь отображать Employees, то лучше использовать len(…). Это позволит получить Employees в памяти и вернуть количество Employees:

employees_birthday = Employees.objects.filter(
    EmployeeDataNasc__range=(first_day, last_day)
)
number_of_birthdays = len(employee_birthdays)

если вы планируете только выводить число из Employees, то используйте .count() [Django-doc], поскольку это предотвратит выборку элементов в памяти.

Вернуться на верх