我创建了基于类的视图来访问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')
希望能帮到你!