Форум сайта python.su
вообщем использую django и AOP библиотеку http://www.cs.tut.fi/~ask/aspects/doc.shtml
Делаю пеерхват отправки емайлов:
mail_aspects.py: - этот файл лежит в корне моего джанго проекта
import aspects
from django.core.mail import send_mail
def on_send_mail(*args, **kwargs):
retval = yield aspects.proceed
... do something
yield aspects.return_stop(retval)
def init():
aspects.with_wrap(on_send_mail, send_mail )
init()
Отредактировано (Авг. 13, 2009 15:56:23)
Офлайн
я обычно в __init__.py пихаю
зачем тебе АОП в джанге?)
Офлайн
ну как зачем отловить все вызовы send_mail в одном месте например) есть альтернатива?)
slav0nicчто то у меня эффект такой же как от в settings поместить, те повторные вызовы идут.
я обычно в __init__.py пихаю
Офлайн
ну сеттинг не один раз читается, пытайся проверить зарегистрировано ли уже событие или нет
wrap_is_enabled чтоли /me не знаток AOP
по поводу альтернатив:
как человек мало интересующийся “философией AOP” :], я б наверно заманкипатчил send_mail и добавил бы свой сигнал http://docs.djangoproject.com/en/dev/topics/signals/#defining-and-sending-signals
например после этой строки http://code.djangoproject.com/browser/django/trunk/django/core/mail.py#L173 , правда это б реагировало и на всякие mail_admins и тп
Офлайн