2011-10-30 21 views
0

モデルには開始日と終了日があります。 開始日と終了日が異なる場合のすべての要素を取得する方法。Djangoクエリ - 開始位置=終了

>>> Entry.objects.exclude(start = end) 
>>> NameError: name 'end' is not defined 

私は助けてください。これまでに挙げた例で

答えて

5

https://docs.djangoproject.com/en/dev/topics/db/queries/#filters-can-reference-fields-on-the-model

、我々は定数でモデルフィールドの値を比較するフィルタを構築しました。しかし、モデルフィールドの値を同じモデルの別のフィールドと比較する場合はどうしたらよいでしょうか?

Djangoは、そのような比較を可能にするF()オブジェクトを提供します。 F()のインスタンスは、クエリ内のモデルフィールドへの参照として機能します。これらの参照は、クエリフィルタで同じモデルインスタンス上の2つの異なるフィールドの値を比較するために使用できます。

あなたの場合は、次のように動作するはずです。

from django.db.models import F 
Entry.objects.exclude(start=F('end')) 
関連する問題