我有一个DRF,使用djoser来处理密码重置。除PASSWORD_RESET_CONFIRM_URL外,密码重置工作流运行良好。
当我在Djoser的那个设置中设置我的前端页面URL时,它一直将API连接到前端页面URL。我怎么才能阻止
关于更多的上下文,这里是我的Djoser设置,显示了我为PASSWORD_RESET_CONFIRM_URL设置的URL
DJOSER = {
'PASSWORD_RESET_CONFIRM_URL': 'http://localhost:3000/auth/confirm-password-reset/{uid}/{token}',
'ACTIVATION_URL': '#/activate/{uid}/{token}',
'SEND_ACTIVATION_EMAIL': True,
'PASSWORD_RESET_SHOW_EMAIL_NOT_FOUND': True,
'PASSWORD_RESET_CONFIRM_RETYPE': True,
'SERIALIZERS': {
'password_reset': 'djoser.serializers.SendEmailResetSerializer',
'password_reset_confirm': 'djoser.serializers.PasswordResetConfirmSerializer',
'password_reset_confirm_retype': 'djoser.serializers.PasswordResetConfirmRetypeSerializer',
'set_password': 'djoser.serializers.SetPasswordSerializer',
'set_password_retype': 'djoser.serializers.SetPasswordRetypeSerializer',
'current_user': 'djoser.serializers.UserSerializer',
},
'PERMISSIONS': {
}
}这是我在电子邮件中收到的URL

如您所见,API已添加到我设置的前端http://127.0.0.1:8000中。
发布于 2022-03-31 16:37:25
有两种方法可以显式地设置新域名:
DOMAIN和SITE_NAME 到Django设置站点通常并不有用,所以使用#1,除非其他东西失败了。唯一的其他选项是覆盖所有电子邮件模板,以便您可以指定完整的url。
{{ protocol }}://{{ domain }}/{{ url|safe }}创建链接templated_mail的包用于发送这些电子邮件protocol、domain和site_name在电子邮件模板中使用的设置变量的代码是:
site = get_current_site(self.request)
domain = context.get('domain') or (
getattr(settings, 'DOMAIN', '') or site.domain
)
protocol = context.get('protocol') or (
'https' if self.request.is_secure() else 'http'
)
site_name = context.get('site_name') or (
getattr(settings, 'SITE_NAME', '') or site.name
)http与https的决定是为您而做的,但是由于它们几乎总是相同的,这在实践中可能不是一个问题。
https://stackoverflow.com/questions/71693624
复制相似问题