Django Query - start = end

时间:2011-10-30 11:01:36

标签: django django-models django-queryset

在模特中我有开始和结束日期。 如何获得开始和结束日期的所有元素是不同的。

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

我不知道请帮忙。

1 个答案:

答案 0 :(得分: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'))