This commit is contained in:
anhduy-tech
2025-12-31 09:22:13 +07:00
parent ef48c93de0
commit bfbe0a4061
9 changed files with 83 additions and 60 deletions

View File

@@ -285,22 +285,20 @@ def final_result(rows, calculation=None, final_filter=None, final_exclude=None,
if calculation:
rows = calculate(rows, calculation)
if final_filter != None:
if final_filter:
filter_list = Q()
for key, value in ast.literal_eval(final_filter).items():
if isinstance(value, dict) == True:
if value['type'] == 'F':
filter_list.add(Q(**{key: F(value['field'])}), Q.AND)
for key, value in final_filter.items():
if isinstance(value, dict) and value.get('type') == 'F':
filter_list.add(Q(**{key: F(value['field'])}), Q.AND)
else:
filter_list.add(Q(**{key: value}), Q.AND)
rows = rows.filter(filter_list)
if final_exclude != None:
if final_exclude:
exclude_list = Q()
for key, value in ast.literal_eval(final_exclude).items():
if isinstance(value, dict) == True:
if value['type'] == 'F':
exclude_list.add(Q(**{key: F(value['field'])}), Q.AND)
for key, value in final_exclude.items():
if isinstance(value, dict) and value.get('type') == 'F':
exclude_list.add(Q(**{key: F(value['field'])}), Q.AND)
else:
exclude_list.add(Q(**{key: value}), Q.AND)
rows = rows.exclude(exclude_list)