簡體   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