2017-02-26 84 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)