Anyone have experience with using 'extra_fields' in a SQLFORM? Here is my code:
def edit_demo(): response.view = 'producer/edit/edit_demo.load' producer_id = request.get_vars.producer_id producer = db(db.producer.id == producer_id).select().first() form = None if producer: fields = ['name', 'address', 'city', 'state', 'zip_code', 'primary_contact', 'primary_phone', 'primary_email', 'secondary_contact', 'secondary_phone', 'secondary_email', 'grade', 'district'] extra_fields = [] for pt in db(db.producer_type.id > 0).select(orderby=db. producer_type.name): if db((db.producer_producer_type.producer_type == pt.id) & (db.producer_producer_type.producer == producer.id)). select().first(): has_producer_type = True else: has_producer_type = False extra_fields.append(Field(fieldname='pt%s' % pt.id, type='boolean', default=has_producer_type, label=pt.name)) form = SQLFORM(db.producer, record=producer_id, fields=fields, showid=False, extra_fields=extra_fields, table_name='edit_demographics', formname= 'edit_demographics_form') if form.process().accepted: response.flash = None url = URL('index', args=['edit', 'producer', producer_id], user_signature=True, extension=False) url += '&jump=demographics_jump' redirect(url, client_side=True) return dict(form=form, is_owner=is_owner, is_admin=is_admin) And it is giving me this error: Traceback (most recent call last): File "/home/jim/dev/web2py/gluon/restricted.py", line 219, in restricted exec(ccode, environment) File "/home/jim/dev/web2py/applications/connect/controllers/producer.py" <http://127.0.0.1:8000/admin/default/edit/connect/controllers/producer.py>, line 1621, in <module> File "/home/jim/dev/web2py/gluon/globals.py", line 422, in <lambda> self._caller = lambda f: f() File "/home/jim/dev/web2py/applications/connect/controllers/producer.py" <http://127.0.0.1:8000/admin/default/edit/connect/controllers/producer.py>, line 1609, in edit_demo table_name='edit_demographics', formname='edit_demographics_form') File "/home/jim/dev/web2py/gluon/sqlhtml.py", line 1505, in __init__ default = record[fieldname] File "/home/jim/dev/web2py/gluon/packages/dal/pydal/objects.py", line 145, in __getitem__ raise KeyError(key) KeyError: 'pt3' I'm not understanding how to define extra_fields in this context. In the end, the form is supposed to look like the attached. I'm trying to add the checkboxes at the bottom of the form. I have it all working with SQLFORM.factory but would prefer that I do it with the base SQLFORM. Thoughts? -Jim -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/679ecdd0-fef8-4620-81b8-c218a0bc435e%40googlegroups.com.