Трабл-фильтрация объектов по датам в Джанго - PullRequest
0 голосов
/ 06 января 2012

У меня есть модель задач, где у каждой задачи есть крайний срок.

class Tasks(models.Model):
    assigned_to = models.ForeignKey('Users', related_name='user_assigned_to')
    deadline = models.DateTimeField()
    status = models.CharField(max_length=20,null=True)

Мне нужно отфильтровать задачу с датой крайнего срока, более ранней, чем сегодняшняя дата, с другими фильтрами. Поэтому я использовал этот запрос:

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline<datetime.datetime.today()),~Q(status="Done"))

Но это дает мне ошибку:

NameError: имя 'крайний срок' не определено

Если я изменил запрос на (просто изменив <знакto =): </p>

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline=datetime.datetime.today()),~Q(status="Done"))

Приведенный выше запрос возвращает мне объекты, но почему он не возвращает объекты, если я использую <или> с datetime?

Ответы [ 2 ]

3 голосов
/ 06 января 2012

Поскольку использование < пытается использовать его в качестве имени вместо аргумента ключевого слова.

..., Q(deadline__lt=datetime.datetime.today()), ....

"Поиск по полю"

0 голосов
/ 06 января 2012

Вы попробовали это ??

all_task = Tasks.objects.filter(Q(assigned_to = i),Q(deadline__lt = datetime.datetime.today()),~Q(status="Done"))

Я надеюсь, что это сработает.

...