[英]Django-filter is being ignored when query parameter value is non-existing
出現問題的代碼:
class GameFilter(FilterSet):
release = MultipleChoiceFilter(choices=Game.RELEASE_CHOICES, method='release_filter', widget=CSVWidget, required=True)
def release_filter(self, queryset, name, releases):
if releases:
...
return queryset
假設在我的Game.RELEASE_CHOICES
中,我的選項之一是“2”,這意味着此查詢對我有用 http://localhost:8000/games/?release=2
在這種情況下,我可以在release_filter
方法中到達我的斷點。
但
當我嘗試使用不存在的查詢參數值查詢此 URL 時
http://localhost:8000/games/?release=2156
release_filter
沒有被執行,根本無法到達斷點,我得到的回報是:
{
"count": 0,
"results": [],
"page_size": 20
}
我想要實現的是,盡管查詢參數值不存在,但過濾器仍在執行。 可能嗎? 感謝您提供所有可能的答案。
你可以試試這個:
releases = request.GET.get('release',None)
# if using DRF
# releases = request.query_params.get('release',None)
if releases and releases in dict(Game.RELEASE_CHOICES).keys():
...
return queryset
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.