2015-01-07 40 views
1

試圖讓查詢集某些對象基礎上,date.dayDjango的date.day查詢集查找

#Model 

class Entry(models.Model): 
    ... 
    from = models.DateField(default=datetime.date.today()) 
    ... 

#view 

    day = 2 
    entryes = Entry.objects.all() 

    #works 
    day_entryes = entryes.filter(from__day=day) 

    #do not work 
    day_entryes = entryes.filter(from__day__lte=day) 

我得到了以下錯誤:

Join on field 'from' not permitted. Did you misspell 'day' for the lookup type? 

爲什麼它不工作?

回答

2

Django不支持日期字段屬性中的過濾方法,如__lt,__gt,__in。有關於這個#6439的票。

你可以做你想要使用extra過濾器:

day = 2 
Entry.objects.extra(where=["EXTRACT(day FROM from) <= %s"], params=[day]) 

我測試過上面使用MySQL,語法也適用於其它SQL後端不同。