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'
)

Reply via email to