Don't take this as a sure thing, but a big improvement was made on 1.99.4/1.99.7 to avoid the behaviour that all decorators (as @auth.requires is) were executed no matter what function you were requesting for that controller. Don't know if that fix brought to your situation. I think your situation can be easily fixed though: before you had a default=None for that field, so just set a variable before the table definition as
tenant_field = session.auth.user.request_tenant if session.auth.user or None and use tenant_field instead of session.auth.user.request_tenant for the default value of the field. On Monday, October 22, 2012 10:10:16 PM UTC+2, Cliff Kachinske wrote: > > My models reference session.auth.user as follows: > > Field('request_tenant', default=session.auth.user.request_tenant) > > Obviously this will fail if the user is not logged in because > session.auth.user is None. > > In 1.99.2, using any of the @auth decorators forces a login before the > model files run, so there is no problem. > > In 2.1.1, errors occur. It seems like the models are being run before the > decorators have been evaluated, whereas in 1.99.2 the decorators were > evaluated first. > > Has something changed in Web2py? > > The applicable model files are identical, according to diff. The > controllers are not, but I made no changes to the index functions and I get > the error when running index. > > Any idea what's going on? > --