Python Django-如何发出通知?当用户注册时,它将向管理员的电子邮件发送通知
这是我的form.py,如何向服务器的电子邮件发送电子邮件通知?这将通知管理员有一个新的用户注册到他的应用程序。Django实现了Python Django-如何发出通知?当用户注册时,它将向管理员的电子邮件发送通知,python,django,web,Python,Django,Web,这是我的form.py,如何向服务器的电子邮件发送电子邮件通知?这将通知管理员有一个新的用户注册到他的应用程序。Django实现了mail\u admins(),该设置由admins设置配置,如中所示 基本用法 来自django.core.mail导入邮件\u管理员 邮件管理员( “这里的主题”, “这是留言。”, 失败=错误 ) 首先,您需要使用ModelForm而不是forms。Form查看此内容以了解ModelForm和Form在细节上的区别 class SignupForm(forms.
mail\u admins()
,该设置由admins
设置配置,如中所示
基本用法
来自django.core.mail导入邮件\u管理员
邮件管理员(
“这里的主题”,
“这是留言。”,
失败=错误
)
首先,您需要使用ModelForm
而不是forms。Form
查看此内容以了解ModelForm
和Form
在细节上的区别
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'
})
)
现在从视图中,您可以在创建新用户帐户后,像这样向站点管理员发送电子邮件
class SignupForm(forms.ModelForm):
.....
class Meta:
model = YourUserModel
fields = [...]
参见发送电子邮件的文档另一个选项是在用户上设置一个信号,该信号将触发用户创建: 型号.py
form = SignupForm(request.POST)
if form.is_valid():
user = form.save()
# now you can send mail to the site admin
mail_admins('subject','message')
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')