在我建立用户的系统中,不能自己注册。用户由其中一个系统管理员添加。因此没有用户注册表单或视图。注册只在管理员中进行,所以我猜send_mail也必须在那边(或者我错了)?
我需要在创建用户时向用户发送一封自动发送的电子邮件,然后才发送给用户(不是每次保存模型)。
任何人都可以帮忙吗?有内置的东西吗?或者我该怎么做?
我已经阅读了有关create_user用户管理器的信息,但我认为有一种更好的方法可以编辑管理器。
答案 0 :(得分: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)
请注意if kwargs["created"]:
条件,检查这是否是新创建的用户实例。
答案 1 :(得分:1)
您可以使用signals framework。用户对象上的保存后信号是合适的,有关类似示例,请参阅here。
答案 2 :(得分:1)