Good afternoon, I'm trying to create an autocomplete field to search in the table db.auth_user, but the search must be done with the full name. As db.auth_user has two separate fields (first_name, and last_name), I created a virtual field to compose both fields:
db.auth_user.full_name = Field.Virtual('full_name', lambda row: '%s %s' %( row.auth_user.first_name, row.auth_user.last_name)) Then, I used the autocomplete widget in a field: db.define_table('my_table', Field('my_user', 'reference auth_user', notnull=True, unique=False, label= 'User'), ... ) db.my_table.my_user.widget = SQLFORM.widgets.autocomplete( request, db.auth_user.full_name, id_field=db.auth_user.id, db=db, at_beginning=False, limitby=(0, 10), min_length=2) And I get this error when creating a new form: <type 'exceptions.AttributeError'> 'DAL' object has no attribute 'None' Versión web2py™ Version 2.14.6-stable+timestamp.2016.05.10.00.21.47Rastreo 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Traceback (most recent call last): File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/restricted.py", line 227, in restricted exec ccode in environment File "/home/clm/Documentos/p/productos/web2py_2.14.6/applications/VREscalas/controllers/default.py" <https://127.0.1.1:8000/admin/default/edit/VREscalas/controllers/default.py>, line 1119, in <module> File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/globals.py", line 417, in <lambda> self._caller = lambda f: f() File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/tools.py", line 4241, in f return action(*a, **b) File "/home/clm/Documentos/p/productos/web2py_2.14.6/applications/VREscalas/controllers/default.py" <https://127.0.1.1:8000/admin/default/edit/VREscalas/controllers/default.py>, line 140, in programas lambda row: A('resumen', _href=URL( File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/sqlhtml.py", line 2307, in grid create_form = SQLFORM(table, **sqlformargs) File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/sqlhtml.py", line 1288, in __init__ inp = field.widget(field, default) File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/sqlhtml.py", line 748, in __call__ table_rows = self.db(self.db[self.fields[0].tablename]).select(orderby=self.orderby) File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/packages/dal/pydal/base.py", line 914, in __getitem__ return self.__getattr__(str(key)) File "/home/clm/Documentos/p/productos/web2py_2.14.6/gluon/packages/dal/pydal/base.py", line 921, in __getattr__ return BasicStorage.__getattribute__(self, key) AttributeError: 'DAL' object has no attribute 'None': I printed in console the self.fields[0]: self.fields {'comment': None, 'represent': <function <lambda> at 0x7f6c907310c8>, 'widget': None, 'name': 'full_name', 'f': <function <lambda> at 0x7f6c90731050>, 'requires': None, 'readable': True, 'label': 'Full name', 'writable': False, 'filter_out': None, 'tablename': None, 'formatter' : <function IDENTITY at 0x7f6c9e090140>, 'type': 'string'} It happens that the db.auth_user.full_name.tablename is None, i.e., the virtual field have no tablename attibute as the autocomplete code seems to expect. Should I open a ticket? Thank you and best regards. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.