gpt4 book ai didi

python - django:当 2 个字段具有相同值时过滤查询集

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:52 25 4
gpt4 key购买 nike

我有一个模型,它有 2 个字段,例如,

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

我想在管理员中使用一个过滤器,它可以根据以下条件过滤查询集

  • 上车和下车 ID 不同
  • 上车和下车 ID 相同

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

我的意思是,像这样,

Mymodel.objects.filter(pickup_station_id==drop_station_id)

Mymodel.objects.filter(pickup_station_id!=drop_station_id)

最佳答案

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

from django.db.models import <b>F</b>

Mymodel.objects.filter(pickup_station_id=<b>F('drop_station_id')</b>)

我们可以使用 Q-object [Django-doc]否定一个q查询 :

from django.db.models import F, <b>Q</b>

Mymodel.objects.filter(<b>~Q(</b>pickup_station_id=F('drop_station_id')<b>)</b>)

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

关于python - django:当 2 个字段具有相同值时过滤查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com