Фильтр Django не принимает поля базы данных

Используя Django 4.1.2, фильтрация не работает для полей базы данных.

Учитывая следующую модель:

class Activities(models.Model):
    es_date = models.DateField(blank=True, null=True)
    ef_date = models.DateField(blank=True, null=True)
    ls_date = models.DateField(blank=True, null=True)
    lf_date = models.DateField(blank=True, null=True)

Миграция выполнена и содержимое БД может быть получено, например, он возвращает все правильно:

>>>from mymodel.models import Activities
>>>Activities.objects.all()
<QuerySet [<Activities: Task 33>, <Activities: Task 30>...]>

или запрос определенного элемента также работает правильно:

>>>Activities.objects.get(id=1)
<Activities: Task 1>

при применении фильтра для заданного поля выдает ошибку "NameError"

>>>Activities.objects.all().filter(es_date>timezone.now())
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'es_date' is not defined

В чем может заключаться ошибка?

попробуйте это: Activities.objects.all().filter(es_date__gt=timezone.now())

>

и проверьте документацию: https://docs.djangoproject.com/en/4.1/ref/models/querysets/#gt

Приветствует

Вам необходимо использовать __gt:

Activities.objects.all().filter(es_date__gt=timezone.now())
Вернуться на верх