5 октября 2011 г.

django.dispatch.receiver - FTW!

Думаю, долгое время, каждый из нас присоединял сигналы к событиям при помощи старого доброго connect метода, например как:

from django.contrib.auth.models import User
from django.db.models import signals

...

signals.post_save.connect(auto_create_user_profile, sender=User)

Однако с выходом Django 1.3 ситуация поменялась. Сейчас достаточно задекорировать функцию сигнала, в нашем случае auto_create_user_profile, с помощью @receiver декоратора:

from django.contrib.auth.models import User
from django.dispatch import receiver

...

@receiver(signals.post_save, sender=User)
def auto_create_user_profile(instnance, **kwargs):
    ...

И все, готово! Согласитесь, удобней и легче чем раньше.

зы. Удачного рефакторинга! ;)

blog comments powered by Disqus