2017-02-26 87 views
0

在我的Django APIView類,我在月份和年份正在採取從POST通過以下方式:Django的篩選查詢 - 忽略,如果該參數爲null

month = request_data.get("month") 
year = request_data.get("year") 

然後我打電話查詢,以獲得數據在月份==月份和年份==年份。

queryset = Expenses.objects.filter(month=month, year=year) 

這完全有效,如果我張貼的月份和年份。但我想要做到以下幾點:

如果month爲空,我想在POST-ed年獲得每個記錄。此刻,如果我POST月份爲空,那麼我沒有得到任何結果。我知道這可以通過一個簡單的if-else來排序,但我想知道是否有更簡單的方法。

回答

0

你有沒有考慮過這個?

filters = {'year': request_data.get("year")} 

month = request_data.get("month") 
if month: 
    filters['month'] = month 

queryset = Expenses.objects.filter(**filters)