有没有办法在创建用户对象时发送用户电子邮件?

Ere*_*rez 2 python django django-admin django-authentication

在我建立用户的系统中,不能自己注册.用户由其中一个系统管理员添加.因此没有用户注册表单或视图.注册只在管理员中进行,所以我猜send_mail也必须在那边(或者我错了)?

我需要在创建用户时向用户发送一封自动发送的电子邮件,然后才发送给用户(不是每次保存模型).

有人能帮忙吗?有内置的东西吗?或者我该怎么做?

我已经阅读了有关create_user用户管理器的信息,但我认为有一种更好的方法可以编辑管理器.

Sha*_*hin 5

您可以在用户模型的post_save信号上注册回调.在某些地方:

# note: untested code

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

def email_new_user(sender, **kwargs):
    if kwargs["created"]:  # only for new users
        new_user = kwargs.["instance"]
        # send email to new_user.email ..

post_save.connect(email_new_user, sender=User)
Run Code Online (Sandbox Code Playgroud)

请注意if kwargs["created"]:检查这是否是新创建的User实例的条件.