如何在 djoser 中更改默认密码重置电子邮件
How to change default password reset email in djoser
我想更改 djoser 的默认电子邮件模板以发送密码重置电子邮件,我在 Whosebug 中看到了一个更改激活邮件的答案,但我不知道如何将其用于密码重置电子邮件
更改默认激活电子邮件的代码:
base/reset_email.py
from djoser import email
class ActivationEmail(email.ActivationEmail):
template_name = 'base/resetPasswordMail.html'
settings.py
DJOSER = {
'EMAIL': {
'activation': 'base.reset_email.ActivationEmail'
},
}
如何替换密码重置功能的代码
djoser
的默认电子邮件配置定义为:
'EMAIL': {
'activation': 'djoser.email.ActivationEmail',
'confirmation': 'djoser.email.ConfirmationEmail',
'password_reset': 'djoser.email.PasswordResetEmail',
'password_changed_confirmation': 'djoser.email.PasswordChangedConfirmationEmail',
'username_changed_confirmation': 'djoser.email.UsernameChangedConfirmationEmail',
'username_reset': 'djoser.email.UsernameResetEmail',
}
您想更改密码重置视图,因此您需要:
DJOSER = {
'EMAIL': {
'password_reset': 'appName.viewFileName.PasswordResetEmail'
},
}
在你看来你可以定义一个PasswordResetEmail
class。以下代码取自 djoser repository:
class PasswordResetEmail(BaseEmailMessage):
template_name = "email/password_reset.html"
def get_context_data(self):
# PasswordResetEmail can be deleted
context = super().get_context_data()
user = context.get("user")
context["uid"] = utils.encode_uid(user.pk)
context["token"] = default_token_generator.make_token(user)
context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
return context
您可以根据自己的目的自定义此 class。
我想更改 djoser 的默认电子邮件模板以发送密码重置电子邮件,我在 Whosebug 中看到了一个更改激活邮件的答案,但我不知道如何将其用于密码重置电子邮件
更改默认激活电子邮件的代码: base/reset_email.py
from djoser import email
class ActivationEmail(email.ActivationEmail):
template_name = 'base/resetPasswordMail.html'
settings.py
DJOSER = {
'EMAIL': {
'activation': 'base.reset_email.ActivationEmail'
},
}
如何替换密码重置功能的代码
djoser
的默认电子邮件配置定义为:
'EMAIL': {
'activation': 'djoser.email.ActivationEmail',
'confirmation': 'djoser.email.ConfirmationEmail',
'password_reset': 'djoser.email.PasswordResetEmail',
'password_changed_confirmation': 'djoser.email.PasswordChangedConfirmationEmail',
'username_changed_confirmation': 'djoser.email.UsernameChangedConfirmationEmail',
'username_reset': 'djoser.email.UsernameResetEmail',
}
您想更改密码重置视图,因此您需要:
DJOSER = {
'EMAIL': {
'password_reset': 'appName.viewFileName.PasswordResetEmail'
},
}
在你看来你可以定义一个PasswordResetEmail
class。以下代码取自 djoser repository:
class PasswordResetEmail(BaseEmailMessage):
template_name = "email/password_reset.html"
def get_context_data(self):
# PasswordResetEmail can be deleted
context = super().get_context_data()
user = context.get("user")
context["uid"] = utils.encode_uid(user.pk)
context["token"] = default_token_generator.make_token(user)
context["url"] = settings.PASSWORD_RESET_CONFIRM_URL.format(**context)
return context
您可以根据自己的目的自定义此 class。