在save中重写 AdminModel 方法 和 Signals
http://www.ibm.com/developerworks/cn/opensource/os-django-admin/index.html
重写 AdminModel 方法
使用 signals 向 admin 添加功能
重写 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
,该方法将发送一封电子邮件;否则不执行任何操作。
![](http://img.zemanta.com/pixy.gif?x-id=67e89a43-c6a2-8633-9292-66f399bf49f7)