Sorry I should have clarified my question.
The part I'm concerned about is the use of *append* when adding the
callback. If append is being used is there any check to make sure a
function is not already in the list. I do not want to call the same
callback multiple times when a record is updated.
In the sourcecode _after_callback is implemented as a list and I see no
checks to make sure the same function isn't inserted/called more than once.
Perhaps it should be a set?
On Thursday, 30 July 2015 00:50:49 UTC-4, Anthony wrote:
>
> auth.add_group() actually does a database insert, so you don't want to
> keep repeating it on every request (actually, I would probably move that
> code out of the app altogether, as it really only needs to be run once
> ever).
>
> Specifying the after update callback, on the other hand, does not affect
> the database at all -- it simply tells the DAL what to do after a database
> update. In fact, you need this to run on every request because it is part
> of the model definition (for the same reason you need to run the associated
> db.define_table() on every request).
>
> Anthony
>
> On Wednesday, July 29, 2015 at 10:59:59 PM UTC-4, Thomas Sitter wrote:
>>
>> Hello,
>>
>> I'm adding an _after_update callback to my table in db.py using:
>>
>> def myfunc(s,f):
>> #do stuff
>> return False
>>
>> db.tt._after_update.append(myfunc)
>>
>> My question is whether this will continuously append this method every
>> time a database table is modified.
>>
>> I'm asking because I had a similar issue when creating the initial auth
>> users/groups in db.py. I had to wrap the code in the following logic to
>> prevent them being added multiple times
>>
>> if not db().select(db.auth_user.ALL).first():
>> group_1 = auth.add_group('group1', 'group1 employees')
>> ...
>>
>>
>> Thanks
>>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.