csvdatasource: don't recompute query value for each row (#31489)

This commit is contained in:
Frédéric Péters 2019-03-17 08:20:51 +01:00
parent 58cf6fc3c5
commit 7e8e9cc38b
1 changed files with 3 additions and 2 deletions

View File

@ -38,10 +38,11 @@ class CsvDataView(View, SingleObjectMixin):
filters = []
for column_title in [t.strip() for t in self.get_object().columns_keynames.split(',') if t]:
if column_title in params.keys():
query_value = request.GET.get(column_title, '')
if 'case-insensitive' in params:
filters.append("%s.lower() == query.get('%s', '').lower()" % (column_title, column_title))
filters.append("%s.lower() == %r" % (column_title, query_value.lower()))
else:
filters.append("%s == query.get('%s')" % (column_title, column_title))
filters.append("%s == %r" % (column_title, query_value))
query = Query(filters='\n'.join(filters))
return self.get_object().execute_query(request, query, **params.dict())