[英]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中的過濾器,該過濾器可以根據以下內容過濾查詢集:
如何根據這些條件獲取查詢集?
我的意思是,像這樣
Mymodel.objects.filter(pickup_station_id==drop_station_id)
Mymodel.objects.filter(pickup_station_id!=drop_station_id)
你可以參考A F ield與F
-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.