can someone advise why the below example doesn't work on django 1.6? On Wednesday, April 14, 2010 12:12:49 PM UTC+3, bruno desthuilliers wrote: > > On 14 avr, 09:32, alecs <[email protected]> wrote: > > How can I send a parameter to a receiver function ? This is wrong : > > > signals.post_save.connect(receiver=refresh_index_page(fragment_name="categories_index", > > sender=Post) > > > > I have avoided this problem by wrapping my function in another > > function, but a bit inconvenient :) > > > > def refresh_index_page(sender, *args, **kwargs): > > invalidate_template_cache(fragment_name="categories_index", *args, > > **kwargs) > > > > signals.post_save.connect(receiver=refresh_index_page, sender=Post) > > If you run python >= 2.5, this should work : > > from functools import partial > signals.post_save.connect( > receiver=partial(refresh_index_page, > fragment_name="categories_index"), > sender=Post > ) > > cf http://docs.python.org/release/2.5/whatsnew/pep-309.html for more > on partial application. > > If you need backward compat with older Python versions, there is/was > something pretty similar in Django itself named curry, so this should > works as well: > > from django.utils.functional import curry > signals.post_save.connect( > receiver=curry(refresh_index_page, > fragment_name="categories_index"), > sender=Post > ) > > HTH > >
-- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/c08f5b3b-2f25-437f-8248-4160fc499445%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

