In fact, just to make sure there wasn't something hidden in my app affecting
the behavior,
I downloaded a fresh install of web2py,

and get the same error:

  File "/home/pierluigi/web2py/gluon/tools.py", line 1796, in register

    user = self.db(table_user[username] == form.vars[username]).select().first()
KeyError: 'email'


Adding just this code to the 'welcome' app:

 def user():
      if request.args(0)=='register':

          auth.settings.table_user.email.default = 'l...@vision.caltech.edu'

          auth.settings.table_user.email.writable=False


          auth.settings.registration_requires_verification = False

      return dict(form=auth())

L.

On Wed, Jul 6, 2011 at 8:35 PM, Luis Goncalves <lgoncal...@gmail.com> wrote:

> Yes, when I click on the invite and go to the website I get the
> registration form filled out with email (and name (excluded from my
> shortened example)) visible and non-editable.
>
> Luis.
>
> —«sent by mobile»—
> On Jul 6, 2011 8:17 PM, "Massimo Di Pierro" <massimo.dipie...@gmail.com>
> wrote:
> > Are you sure your db.registrant has an email?
> >
> > On Jul 6, 10:04 pm, Luis Goncalves <lgoncal...@gmail.com> wrote:
> >> I still get the same error:
> >>
> >>   File "/home/ubuntu/web2py/gluon/tools.py", line 1683, in register
> >>     user = self.db(table_user[username] ==
> form.vars[username]).select().first()
> >> KeyError: 'email'
> >>
> >> I don't know if it makes a difference or not, but I'm using emails for
> login
> >> (not a username) -- as is probably clear to you from the above error.
> >>
> >> Code is now:
> >>
> >>   def user():
> >>
> >>       if request.args(0)=='register':
> >>
> >>           registrant = db( db.registrant.token == request.vars.token
> >> ).select().first()
> >>
> >>           auth.settings.table_user.email.default = registrant.email
> >>           auth.settings.table_user.email.writable=False
> >>
> >>           auth.settings.registration_requires_verification = False
> >>
> >>       return dict(form=auth())
>

Reply via email to