在save中重写 AdminModel 方法 和 Signals

http://www.ibm.com/developerworks/cn/opensource/os-django-admin/index.html

重写 AdminModel 方法
使用 signals 向 admin 添加功能

def notify_admin(sender, instance, created, **kwargs):
if created:
subject = 'New user created'
message = 'User %s was added' % instance.username
from_addr = 'no-reply@example.com'
recipient_list = ('admin@example.com',)
send_mail(subject, message, from_addr, recipient_list)
signals.post_save.connect(notify_admin, sender=User

post_save signal 由 Django 提供,每次保存或创建模型时都会激活。connect() 方法带有两个参数:一个回调参数(notify_admin)和 sender 参数,后者指定该回调只关注 User 模型的保存事件。

在回调中,post_save signal 传递发送方(模型类)、该模型的实例和提示是否刚刚创建了实例的布尔值。在本例中,如果创建了 User,该方法将发送一封电子邮件;否则不执行任何操作。



posted @ 2009-11-24 09:16  kid的笔记本  阅读(436)  评论(0编辑  收藏  举报