![](/img/trans.png)
[英]Django CustomUser created in Admin, User notification by email
[英]Django - How to make a notification?f when User Register It will send notification to Email of Admin
class SignupForm(forms.Form):
username = forms.CharField(max_length=10, widget=forms.TextInput({
'class': 'form-control',
'placeholder': 'Username',
})
)
email = forms.EmailField(
max_length=200,
widget=forms.TextInput({
'class': 'form-control',
'placeholder': 'Email'
})
)
password = forms.CharField(
min_length=6, max_length=10,
widget=forms.PasswordInput({
'class': 'form-control',
'placeholder': 'Password'
})
)
repeat_password = forms.CharField(
min_length=6, max_length=10,
widget=forms.PasswordInput({
'class': 'form-control',
'placeholder': 'Repeat password'
})
)
这是我的 form.py,如何向服务器的 email 发出 email 通知? 这将通知管理员他的应用程序有一个新的用户注册。
Django 实现了由ADMINS
设置配置的mail_admins()
,可以在文档中找到。
from django.core.mail import mail_admins
mail_admins(
'Subject here',
'Here is the message.',
fail_silently=False
)
首先,您需要使用ModelForm
而不是forms.Form
请参阅此帖子以详细了解ModelForm
和Form
的区别。
class SignupForm(forms.ModelForm):
.....
class Meta:
model = YourUserModel
fields = [...]
现在从视图中,您可以在创建新用户帐户后像这样将 email 发送给站点管理员。
form = SignupForm(request.POST)
if form.is_valid():
user = form.save()
# now you can send mail to the site admin
mail_admins('subject','message')
请参阅此处的文档以发送 email
另一种选择是在用户上设置一个pre_save
信号,该信号将触发一个用户的创建:
模型.py
from django.db.models.signals import pre_save
@receiver(pre_save, sender=User)
def user_created_email_notification(sender, instance, *args, **kwargs):
if instance.id:
mail_admins('subject','message')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.