django:当2个字段具有相同值时过滤queryset

时间:2018-07-23 10:08:37

标签: python django django-models

我有一个模型,其中有2个字段,

$("#IsOwner option:selected").val(false);

我想要admin中的过滤器,该过滤器可以基于以下条件过滤查询集

  • 提取和放置ID不同
  • 提取和放置ID相同

如何根据这些条件获取查询集?

我的意思是,像这样

pickup_station_id = models.IntegerField(null=True)
drop_station_id = models.IntegerField(null=True)

1 个答案:

答案 0 :(得分:6)

您可以引用带有F-expression [Django-doc] f ield 。所以我们可以这样写:

from django.db.models import F

Mymodel.objects.filter(pickup_station_id=F('drop_station_id'))

我们可以使用Q-object [Django-doc] 否定 q uery

from django.db.models import F, Q

Mymodel.objects.filter(~Q(pickup_station_id=F('drop_station_id')))

这里波浪号(~)表示我们求反 Q对象所代表的条件。