Merge pull request #1235 from kjkuan/avoid-query-per-row-for-virtual-fields

Avoid issuing a separate sql query for each row in sqlform grid search results, for virtual fields
This commit is contained in:
mdipierro
2016-03-24 12:09:36 -05:00
+5 -1
View File
@@ -2743,7 +2743,11 @@ class SQLFORM(FORM):
if field.type == 'blob':
continue
if isinstance(field, Field.Virtual) and field.tablename in row:
value = dbset.db[field.tablename][row[field.tablename][field_id]][field.name]
try:
# fast path, works for joins
value = row[field.tablename][field.name]
except KeyError:
value = dbset.db[field.tablename][row[field.tablename][field_id]][field.name]
else:
value = row[str(field)]
maxlength = maxtextlengths.get(str(field), maxtextlength)