Как использовать django annotate для сравнения текущей даты с другими датами в моделях

Я хочу получить количество дней между текущим временем и другой датой. Вот команда, которую я использовал:

employees = Employee.objects.annotate(
        duration=ExpressionWrapper(datetime.now().date() - F('start_working_date'), output_field=DurationField())
        )

Но результат, который я получил (employee.duration), равен 0.

for employee in employees:
    employee.duration

А вот мои модели:

class Employee(models.Model):
    name = models.CharField(max_length=30)
    start_working_date = models.DateField()

Попробуйте это __range

date_range = [from_date, to_date ]
emp = Employee.objects.filter(start_working_date__range=date_range)

Используйте Value для передачи и использования значения в выражении запроса

from datetime import date
from django.db.models import F, Value

employees = Employee.objects.annotate(
    duration=Value(date.today()) - F('start_working_date')
)
Вернуться на верх