2011-10-30 41 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'))