如何更改django的账户激活邮件模板?



我创建了基于类的视图来访问uid和令牌。在这里,我创建了一个网页,其中有一个按钮的激活用户。我正在发送一个uid和token到用户邮箱。

我创建了基于类的视图来获取uid和token。我在用户gmail帐户上发送电子邮件。用户获得激活帐户的链接

Email如下:

你收到这封邮件是因为你需要在127.0.0.1:8000上完成激活过程。

请到以下页面激活账号:

http://127.0.0.1:8000激活/毫克/ata7ek-01e823899301fe357286112596a25655

感谢您使用我们的网站!

127.0.0.1:8000团队

但是现在我想更改激活帐户的电子邮件内容/模板。如何在django中修改这个模板

这是我的joser设置

DJOSER = {
'LOGIN_FIELD': 'email',
'USER_CREATE_PASSWORD_RETYPE': True,
'USERNAME_CHANGED_EMAIL_CONFIRMATION': True,
'PASSWORD_CHANGED_EMAIL_CONFIRMATION': True,
'SEND_CONFIRMATION_EMAIL': True,
'SET_USERNAME_RETYPE': True,
'SET_PASSWORD_RETYPE': True,
'PASSWORD_RESET_CONFIRM_URL': 'password/reset/confirm/{uid}/{token}',
'USERNAME_RESET_CONFIRM_URL': 'email/reset/confirm/{uid}/{token}',
'ACTIVATION_URL': 'activate/{uid}/{token}',
'SEND_ACTIVATION_EMAIL': True,
'SERIALIZERS': {
'user_create': 'user_profile.serializer.UserSerializer',
'user': 'user_profile.serializer.UserSerializer',
}
}

views.py

class UserActivationView(View):
def get (self, request, uid, token):
return render(request, 'activate_user.html') 

def post (self, request, uid, token):
protocol = 'https://' if request.is_secure() else 'http://'  
web_url = protocol + request.get_host() + '/'
activate_url = "users/activation/"
post_url = web_url + AUTHENTICATION_BASE_ROUTE + activate_url 
response = requests.post(post_url, headers={'content-type':'application/json'}, 
data = json.dumps({'uid': uid, 'token': token})
if response.status_code == 204: 
return render(request,"success.html")

else:
return render(request,"activation_failed.html")

如何更改?

很明显,你只需要重写activate_user.html模板(djoser/templates/email/)。

class UserActivationView(View):
def get (self, request, uid, token):
return render(request, 'activate_user.html')

另一个选择是在这个目录下创建一个新的模板,并更改View的最后一行来使用它。

return render(request, 'new_activate_user.html')

希望能帮到你!

最新更新