2017-01-10 6 views
0

フィールドの値と変数の違いに基づいてモデルのすべてのオブジェクトをリストしようとしています。たとえば、3日以上経過してから作成されたオブジェクトを取得しようとしています。だから私はdjangoクエリーセットの変数と返されたフィールドの差異を比較します

import datetime 
from myapp_books.models import Book 
from django.db.models import F 

current_date = datetime.date.today() 
books = Book.objects.annotate(day_difference=F('date_added__date') - current_date).filter(day_difference__gte=3) 
books.count() 

AttributeError: 'ExpressionNode' object has no attribute 'lookup' 

してくださいアドバイスを次のように私は貝にそれを実行したときにこれは私にエラーを与えているが、次のようなモデルを照会しようとしています。私は日付がそれはまた

Book.objects.filter(date_added__date__gte=datetime.now()-timedelta(days=3)) 

古いより3日古いです追加であなただけフィルタリングすることができるはず、私はあなたがすべてで注釈を必要としないと思うジャンゴ1.5.12

+3

Django 1.5.12、なぜですか? –

+0

F式はdjango 1.8+に関するメッシュです。 – e4c5

+0

@MosesKoledoyeアップグレードするには多くのコードレビューが必要です。しばらくしてから同じバージョンを使用しています。すぐにアップグレードが必要です。 –

答えて

4

を使用していますあなたはdjangoのサポートされているバージョンにアップグレードする必要があります

+1

+アップグレードのビットについて – e4c5

+1

@Sayseありがとうございます。それは注釈なしで働いた。 –

関連する問題