2011-10-30 40 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()的實例充當對查詢中的模型字段的引用。然後可以在查詢過濾器中使用這些引用來比較同一模型實例上兩個不同字段的值。

對於你的情況,下面應該工作。

from django.db.models import F 
Entry.objects.exclude(start=F('end'))