繁体   English   中英

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

[英]django: filter queryset when 2 fields have same value

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

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

我想要admin中的过滤器,该过滤器可以根据以下内容过滤查询集:

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

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

我的意思是,像这样

Mymodel.objects.filter(pickup_station_id==drop_station_id)

Mymodel.objects.filter(pickup_station_id!=drop_station_id)

你可以参考A F ieldF -expression [Django的DOC] 。 所以我们可以这样写:

from django.db.models import F

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

我们可以通过使用否定 A Q uery Q -object [Django的DOC] :

from django.db.models import F, Q

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

这里的波浪号( ~ )表示我们否定Q对象表示的条件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM