Как подсчитать количество моего 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], поскольку это предотвратит выборку элементов в памяти.