[英]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.