在Django管理员中激活用户时发送电子邮件

时间:2010-08-09 15:46:56

标签: django django-signals django-authentication

我即将创建一个监控注册的网站,只允许某些人注册。毫无疑问,尽管我在报名表上面写了任何文字,但仍会有一些不合适的内容,所以我们要适度。

注册后,我们会创建django.contrib.auth User个人资料,并会向主持人发送电子邮件。主持人将登录Django管理站点,检查他们是否允许注册并标记其帐户处于活动状态。如果他们是一些不法分子试图入内,那么该帐户将被删除。

我将使用recaptcha尝试停止自动尝试。

我想在帐户被激活或删除时发送电子邮件,让帐户持有人知道他们的帐户发生了什么,他们可以登录,或让他们知道我们知道他们在做什么他们应该停止愚蠢。

我怀疑这与信号有关,但我坦率地不知道这实际上适合的地方,因为我使用的是django.contrib.auth提供的预制模型。

任何提示,线索或代码都是慷慨接受的。

2 个答案:

答案 0 :(得分:1)

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

def send_user_email(sender, instance=None, **kwargs):
    if kwargs['created']:
        #your code here
post_save.connect(send_user_email, sender=User)

这样的事情应该有效。 Here是文档。

答案 1 :(得分:1)

您想查看Signals

  • 帐户启动后,您应使用pre_save。您可以将当前用户与数据库中的现有实例进行比较:检查实例是否存在,检查以前是否为active = False,检查新实例是否为活动= True,然后send an email
  • 删除帐户后,请使用pre_delete。如果您使用post_delete,则无法访问该电子邮件。
相关问题