Skip to content

Commit aa4c70c

Browse files
committed
simplify nested dict filtering
Signed-off-by: Drew Shafer <[email protected]>
1 parent 6dc7933 commit aa4c70c

File tree

2 files changed

+2
-13
lines changed

2 files changed

+2
-13
lines changed

django_declarative_apis/machinery/__init__.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -182,19 +182,6 @@ def get_response(self):
182182
return status_code, data
183183
else:
184184
raise HttpStatusCode(data)
185-
elif isinstance(data, dict):
186-
result = {}
187-
for key, value in data.items():
188-
if isinstance(value, (list, tuple, models.query.QuerySet)):
189-
result[key] = []
190-
for item in value:
191-
result[key].append(
192-
apply_filters_to_object(item, filter_def)
193-
)
194-
else:
195-
result[key] = apply_filters_to_object(value, filter_def)
196-
197-
return status_code, result
198185
else:
199186
return (
200187
status_code,

django_declarative_apis/machinery/filtering.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@ def _apply_filters_to_object(inst, filter_def, expand_children=None, klass=None)
115115
)
116116
for item in inst
117117
]
118+
elif isinstance(inst, (dict,)):
119+
return {k: _apply_filters_to_object(v, filter_def, expand_children=expand_children, klass=v.__class__) for k, v in inst.items()}
118120

119121
fields_def = filter_def.get(klass)
120122
if fields_def is None:

0 commit comments

Comments
 (0)