There are only two possibilities: - you are not logged in - the code above is executed before auth=Auth(....) in db.py is executed (remember models are executed alphabetically)
On Oct 24, 2:18 pm, Luther Goh Lu Feng <elf...@yahoo.com> wrote: > The snippet below defines a table that stores comments that are > created. The 1st field `user` records the user id of the user who > created the record. I am trying to set the default value to the > current authenticated user, using "auth.user_id" as suggested in > Chapter 13 of the web2py book. > > Although the transaction is successful, the value recorded is "None". > I have also used "auth.user.id" but this leads to "AttributeError: > 'NoneType' object has no attribute 'id" > > Would anyone please kindly explain to me why "auth.user.id" and > "auth.user_id" are failing as described? > > db.define_table('comment', > Field('user', custom_auth_table, default=auth.user_id, > writable=False, notnull=True), > Field('question', 'reference question', writable=False, > notnull=True), > Field('text', 'text', length=512, required=True, > requires=IS_NOT_EMPTY()), > Field('created', 'datetime', default=request.now, writable=False, > readable=False, notnull=False), > format='%(user)s on %(question)s' > )