姜戈全部 AUTHEMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL
DJANGO ALL AUTHEMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL
我正在尝试两种不同的重定向...一种用于正常登录,另一种用于电子邮件确认后的重定向
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = '/profile'
LOGIN_REDIRECT_URL = '/'
但是当我启用登录时,AUTHENTICATED REDIRECT
转到 LOGIN_REDIRECT
,但是当我禁用登录时,它转到 EMAIL_CONFIRMATION_REDIRECT
路由。
当我尝试在下方打印 email_confirmation
重定向 url 的适配器设置时,它仅显示 LOGIN_REDIRECT
def get_email_confirmation_redirect_url(self, request):
""" The URL to return to after successful e-mail confirmation. """
if request.user.is_authenticated:
if app_settings.EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL:
return \
app_settings.EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL
else:
return self.get_login_redirect_url(request)
else:
return app_settings.EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL
我尝试在适配器中覆盖此 get_email_confirmation_redirect_url
,但仍然无法正常工作。在我登录并重新验证之前,它没有选择 REDIRECT
。
由于如果用户未登录,ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = '/profile'
将无法工作,我决定在 Django Allauth 中覆盖 DefaultAccountAdapter
。我的登录是,如果用户加入应用的时间和登录的时间超过了某个阈值,那么重定向就会不同。所以我在我的用户应用程序中创建了一个适配器,如下所示:
class AccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
expiry = 90 #seconds
assert request.user.is_authenticated
if (request.user.last_login - request.user.date_joined).seconds < expiry:
url = 'profile/'
else:
url = settings.LOGIN_REDIRECT_URL
return resolve_url(url)
然后我在 settings.py
中传递了这个适配器
我正在尝试两种不同的重定向...一种用于正常登录,另一种用于电子邮件确认后的重定向
ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = '/profile'
LOGIN_REDIRECT_URL = '/'
但是当我启用登录时,AUTHENTICATED REDIRECT
转到 LOGIN_REDIRECT
,但是当我禁用登录时,它转到 EMAIL_CONFIRMATION_REDIRECT
路由。
当我尝试在下方打印 email_confirmation
重定向 url 的适配器设置时,它仅显示 LOGIN_REDIRECT
def get_email_confirmation_redirect_url(self, request):
""" The URL to return to after successful e-mail confirmation. """
if request.user.is_authenticated:
if app_settings.EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL:
return \
app_settings.EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL
else:
return self.get_login_redirect_url(request)
else:
return app_settings.EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL
我尝试在适配器中覆盖此 get_email_confirmation_redirect_url
,但仍然无法正常工作。在我登录并重新验证之前,它没有选择 REDIRECT
。
由于如果用户未登录,ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = '/profile'
将无法工作,我决定在 Django Allauth 中覆盖 DefaultAccountAdapter
。我的登录是,如果用户加入应用的时间和登录的时间超过了某个阈值,那么重定向就会不同。所以我在我的用户应用程序中创建了一个适配器,如下所示:
class AccountAdapter(DefaultAccountAdapter):
def get_login_redirect_url(self, request):
expiry = 90 #seconds
assert request.user.is_authenticated
if (request.user.last_login - request.user.date_joined).seconds < expiry:
url = 'profile/'
else:
url = settings.LOGIN_REDIRECT_URL
return resolve_url(url)
然后我在 settings.py
中传递了这个适配器