2017-02-26 3 views
0

In meiner django APIView Klasse, ich im Monat und Jahr in der folgenden Art und Weise von einem POST nähme:Django Filter Abfrage - ignoriert, wenn der Parameter ist null

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

Dann nenne ich eine Abfrage die bekommen Daten mit dem Monat == Monat und Jahr == Jahr.

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

Dies funktioniert völlig, wenn ich den Monat und das Jahr posten. Aber ich möchte Folgendes tun:

Wenn Monat Null ist, möchte ich jeden Datensatz in der POST-Ed Jahr erhalten. In dem Moment, wenn ich Monat als Null post, dann bekomme ich keine Ergebnisse. Ich weiß, dass dies nach einem einfachen Wenn-Else sortiert werden kann, aber ich möchte wissen, ob es einen einfacheren Weg gibt.

Antwort

0

Haben Sie das berücksichtigt?

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

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

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