Trunk AttributeError when validating SQLFORM.factory

23 views
Skip to first unread message

Alan Etkin

unread,
Apr 4, 2012, 8:33:28 AM4/4/12
to web...@googlegroups.com
When I submit a form created with .factory(), on validation web2py throws this error:

Traceback (most recent call last):
File "/home/alan/web2py/web2py-hg/gluon/restricted.py", line 205, in restricted
exec ccode in environment
File "/home/alan/web2py/web2py-hg/applications/pyodel/controllers/wizard.py", line 414, in <module>
File "/home/alan/web2py/web2py-hg/gluon/globals.py", line 175, in <lambda>
self._caller = lambda f: f()
File "/home/alan/web2py/web2py-hg/applications/pyodel/controllers/wizard.py", line 221, in quiz
if form.process().accepted:
File "/home/alan/web2py/web2py-hg/gluon/html.py", line 2004, in process
self.validate(**kwargs)
File "/home/alan/web2py/web2py-hg/gluon/html.py", line 1951, in validate
if self.accepts(**kwargs):
File "/home/alan/web2py/web2py-hg/gluon/sqlhtml.py", line 1040, in accepts
try:
AttributeError: 'SQLFORM' object has no attribute try:
'readonly'


I think that cause of the error is that the code that initializes the form doesn't set the object's readonly attribute.

I solved the problem by using a try-except block here.
# gluon/sqlhtml.py line 1040
try:
if self.readonly: return False
except AttributeError, e:
self.readonly = False


Anyway, this is not a proper patch. The correct one should set the readonly attribute on form instantiation. My web2py version is Version 1.99.7 (2012-04-01 23:37:42) dev

Massimo Di Pierro

unread,
Apr 4, 2012, 9:20:27 AM4/4/12
to web...@googlegroups.com
fixed in trunk. Thanks Alan.
Reply all
Reply to author
Forward
0 new messages