I managed to find the culprit. The function before it had a mismatched
parentheses. So it would continue reading this function and fail on
compilation. Thanks for all your replies.  The append works, although
if this is a new user and no list has been defined yet it won't. So I
check if it returns None, set the list to [] and then have the append
statement.
I thought all the vars would be initialized by default so a list type
would return [] if it wasn't set in the form.

Another thing I learned is the fact that the function must receive one
argument (form).

Thanks again for the wonderful support.

Sent from my phone

On 5 בינו 2012, at 00:17, Alan Etkin <spame...@gmail.com> wrote:

> And if the auth_user field is of type list:<type>, seems that even it
> is ok to do simply:
>
> auth.user.mylistfield.append(object)
>
> without explicit db query or update
>
> On 4 ene, 18:42, Alan Etkin <spame...@gmail.com> wrote:
>> If you are doing post-registration process, you might want to use
>> auth.settings.register_onaccept:
>>
>> register_onaccept is a list of functions or a single function or
>> lambda that receive a form argument
>>
>> form.vars.id contains the id of the new auth_user record.
>>
>> For appending to a sequence stored in an auth_user record field, maybe
>> it would be better to get the auth_user record field first with a db
>> query, modify it and finally update the db record.
>>
>> On 4 ene, 11:54, tsvim <ttm...@gmail.com> wrote:
>>
>>> Hi all,
>>
>>> I'm trying to use the callbacks for auth.settings.register_onvalidation.
>>> I first put the function in controllers, when I discovered it should be in
>>> models as the settings are there.
>>> Now I have them in models, but I get a invalid syntax error on the last
>>> line:
>>
>>> def register_new_table_token():
>>>     auth.user.last_opened = session.table_token
>>>     auth.add_membership(auth.add_group(session.table_token),auth.user.id)
>>>     auth.user.my_budgets.append(session.table_token)
>>>     return
>>
>>> This happens both when I have pass instead of return or I don't enter a
>>> return statement.
>>
>>> Please help,
>>
>>> Thanks,
>>
>>> Tsvi
>>
>>

Reply via email to