Как использовать 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')
)