Alessandro, a few additional questions came up ;):

I got:

class LessonsCrudController(FilteredCrudRestController):
    model = Lesson
    __table_options__ = {...}
    __form_options__ = {...}
    
    def inject_event(self, *args, **kw):
        log.debug('inject_event')
        for a in args:
            log.debug(a)
        for k in kw:
            log.debug('%s: %s' % (k,kw[k]))
    
    def __init__(self, *args, **kw):
        super(LessonsCrudController, self).__init__(*args, **kw)
        before_validate(self.inject_event)(self.post)

And that is what I got on the logs:

09:54:46,751 DEBUG [sauce.controllers.crc] inject_event
09:54:46,751 DEBUG [sauce.controllers.crc] []
09:54:46,751 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,751 DEBUG [sauce.controllers.crc] inject_event
09:54:46,751 DEBUG [sauce.controllers.crc] []
09:54:46,751 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,751 DEBUG [sauce.controllers.crc] inject_event
09:54:46,752 DEBUG [sauce.controllers.crc] []
09:54:46,752 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,752 DEBUG [sauce.controllers.crc] inject_event
09:54:46,752 DEBUG [sauce.controllers.crc] []
09:54:46,752 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,752 DEBUG [sauce.controllers.crc] inject_event
09:54:46,752 DEBUG [sauce.controllers.crc] []
09:54:46,752 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,752 DEBUG [sauce.controllers.crc] inject_event
09:54:46,752 DEBUG [sauce.controllers.crc] []
09:54:46,752 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,753 DEBUG [sauce.controllers.crc] inject_event
09:54:46,753 DEBUG [sauce.controllers.crc] []
09:54:46,753 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,753 DEBUG [sauce.controllers.crc] inject_event
09:54:46,753 DEBUG [sauce.controllers.crc] []
09:54:46,753 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,753 DEBUG [sauce.controllers.crc] inject_event
09:54:46,753 DEBUG [sauce.controllers.crc] []
09:54:46,753 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,753 DEBUG [sauce.controllers.crc] inject_event
09:54:46,753 DEBUG [sauce.controllers.crc] []
09:54:46,754 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,754 DEBUG [sauce.controllers.crc] inject_event
09:54:46,754 DEBUG [sauce.controllers.crc] []
09:54:46,754 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}
09:54:46,754 DEBUG [sauce.controllers.crc] inject_event
09:54:46,754 DEBUG [sauce.controllers.crc] []
09:54:46,754 DEBUG [sauce.controllers.crc] {'event': u'', 'name': u'text', 
'teacher': u'3', 'lesson_id': u'text', 'sprox
_id': u'', 'id': u''}

So you see, the hook gets called very often! It's not event a constant 
number, at first I counted 6 calls, now its more than 10.
And the arguments are (not merely wrong but) unexected both packed in args 
like args = [[], {}].

What am I doing wrong NOW? :D

Thanks a lot,
best wishes,
Moritz

Am Dienstag, 17. April 2012 01:28:36 UTC+2 schrieb Moritz Schlarb:
>
> Ooooh noo....
> I think I was doing something incredibily stupid...
>
> I'm not sure what I coded yesterday, I don't seem to have saved it, but I 
> think I was using the decorator wrongly.
>
> I think it was something like:
>
> @before_validate()
> def before_put(...):
>
> Thanks a lot!
>
> Am Montag, 16. April 2012 10:36:07 UTC+2 schrieb Alessandro Molina:
>>
>> How are you registering the decorator? It should work correctly.
>> I tested it on the fly and it seems to correctly work as expected.
>>
>> class MyGroupRestController(EasyCrudRestController):
>>     model = model.Group
>>
>>     def before_put(self, *args, **kw):
>>         print args, kw
>>
>>     def __init__(self, *args, **kw):
>>         super(MyGroupRestController, self).__init__(*args, **kw)
>>         before_validate(self.before_put)(self.put)
>>
>> There are other ways to register the hook, but they should all work 
>> correctly.
>>
>> On Sun, Apr 15, 2012 at 11:54 PM, Moritz Schlarb <[email protected]> 
>> wrote:
>> > Hi there!
>> >
>> > I'm subclassing EasyCrudRestController and now I have an attribute
>> > self.event, that I don't want to be changed in the add and edit forms, 
>> but
>> > that needs to be present when writing the form to the database.
>> > I thought about using a @before_validate hook to simply insert it into
>> > kwargs, but that doesn't work since @before_validate doesn't seem to get
>> > called (no logging).
>> > Another alternative would be using a HiddenField, but then I would have 
>> to
>> > insert the value into the AddForm, which I don't know how to do.
>> >
>> > Any help would be nice! ;)
>> >
>> > Thanks and good night,
>> > Moritz
>> >
>> > --
>> > You received this message because you are subscribed to the Google 
>> Groups
>> > "TurboGears" group.
>> > To view this discussion on the web visit
>> > https://groups.google.com/d/msg/turbogears/-/qTqkd_d9t0gJ.
>> > To post to this group, send email to [email protected].
>> > To unsubscribe from this group, send email to
>> > [email protected].
>> > For more options, visit this group at
>> > http://groups.google.com/group/turbogears?hl=en.
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/turbogears/-/LUazTYzarrcJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en.

Reply via email to