Skip to content

Commit 143c77a

Browse files
committed
Comprehension get_results.
1 parent 2abb8ff commit 143c77a

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

driver27/models.py

+17-14
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,25 @@
2121

2222

2323
def get_results(seat=None, contender=None, team=None, race=None, season=None, competition=None, limit_races=None, **extra_filters):
24+
key_in_filters = {
25+
'limit_races': 'race__round__lte',
26+
'contender': 'seat__contender',
27+
'team': 'seat__team',
28+
'season': 'race__season',
29+
'competition': 'race__season__competition',
30+
'seat': 'seat',
31+
'race': 'race'
32+
}
33+
2434
filter_params = {}
25-
if limit_races:
26-
filter_params['race__round__lte'] = limit_races
27-
if seat:
28-
filter_params['seat'] = seat
29-
if contender:
30-
filter_params['seat__contender'] = contender
31-
if team:
32-
filter_params['seat__team'] = team
33-
if race:
34-
filter_params['race'] = race
35-
if season:
36-
filter_params['race__season'] = season
37-
if competition:
38-
filter_params['race__season__competition'] = competition
35+
# kwarg is each param with custom filter
36+
for kwarg in key_in_filters.keys():
37+
value = locals().get(kwarg) # get the value of kwarg
38+
if value:
39+
key = key_in_filters.get(kwarg) # the key of filter is the value of kwarg in key_in_filter
40+
filter_params[key] = value
3941
filter_params.update(**extra_filters)
42+
4043
results = Result.objects.filter(**filter_params)
4144
results = results.order_by('race__season', 'race__round')
4245
return results

0 commit comments

Comments
 (0)