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

Reply via email to