2012-01-06 10 views
-1

私はすべてのタスクが締め切りを持つタスクモデルを持っています。djangoの日付に基づく問題のフィルタリングオブジェクト

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

しかし、この私に与えるエラー:

NameError: name 'deadline' is not defined

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) 

は、私はこのクエリを使用し、他のfilters.Soと、今日の日付より前の締切日を持っているタスクをフィルタリングする必要があります

質問を変更した場合(< =への変更):

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

上記のクエリはオブジェクトを返しますが、<または> datetimeを使用する場合にオブジェクトを返さないのはなぜですか?

答えて

3

<を使用しているため、キーワード引数の代わりに名前として使用しようとしています。

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

"Field lookups"

+0

同じケースでは、「より小さい」ではなく「それ以下」をどうやって行うのですか? – Anshul

+3

リンクが与えられたときに、それは1つの行動を起こすでしょう。* –

+0

Q(deadline__lte = datetime.datetime.today()):)ありがとう... – Anshul

0

uは、このいずれかを試してみます?

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

私はうまくいきたいと思います。

関連する問題