No, SQLFORM.factory returns a SQLFORM object, which inherits from FORM. Once created, you can add elements via
server-side DOM manipulation, but not by adding a DAL Table or Field object as when calling the .factory() method. Instead, inside a loop or list comprehension, you can build up a list of DAL Tables and or Fields, and then use Python argument unpacking to pass the entire list to SQLFORM.factory. For example:
tables = [db[t] for t in ['table1', 'table2', 'table3']]
form = SQLFORM.factory(*tables)
Anthony