diff --git a/gluon/sqlhtml.py b/gluon/sqlhtml.py index 6454d14b..3efc0ea3 100644 --- a/gluon/sqlhtml.py +++ b/gluon/sqlhtml.py @@ -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)