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

在Django管理员中激活用户时发送电子邮件,django,django-signals,django-authentication,Django,Django Signals,Django Authentication,我将要创建一个网站,监测注册,只有某些人被允许注册。毫无疑问,尽管我在登记表上写了一些文字,但还是会有一些不合适的人登记,所以我们要适度 注册后,将创建一个django.contrib.auth用户,并向主持人发送电子邮件。版主将登录Django管理员网站,检查他们是否被允许注册并将其帐户标记为活动帐户。如果他们是想溜进来的歹徒,账户会被删除 我将使用recaptcha尝试并停止自动尝试 我想在激活或删除帐户时发送一封电子邮件,让帐户持有人知道他们的帐户发生了什么,他们可以登录,或者让他们知道我

我将要创建一个网站,监测注册,只有某些人被允许注册。毫无疑问,尽管我在登记表上写了一些文字,但还是会有一些不合适的人登记,所以我们要适度

注册后,将创建一个
django.contrib.auth
用户
,并向主持人发送电子邮件。版主将登录Django管理员网站,检查他们是否被允许注册并将其帐户标记为活动帐户。如果他们是想溜进来的歹徒,账户会被删除

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

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

我怀疑这与信号有关,但坦率地说,我不知道这到底适合哪里,因为我使用的是从
django.contrib.auth
提供的预制模型

任何提示、线索或代码都会被亲切地接受

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)

这样的办法应该行得通。是文档。

您想看一下文档

  • 当帐户被激活时,您应该使用。您可以将当前用户与数据库中的现有实例进行比较:检查实例是否存在,检查上一个实例是否处于活动状态=False,检查新实例是否处于活动状态=True,然后
  • 删除帐户时,请使用。如果您使用post_delete,您将无法访问电子邮件

post_save无法工作,因为他无法判断用户是否处于活动状态。他想知道用户是何时被激活的,而不是何时被创建的。谢谢你,但是你能分享代码让事情变得更清楚吗?