如何解决为什么django allauth重定向到/ accounts / login /?= next / MY_PAGE而不是登录?
我正在尝试使用Django allauth在网站上处理用户身份验证。但是,在输入用户名和密码并单击我网站上的“登录”后,我被重定向到/ accounts / login /?= next / MY_PAGE,并且只需重新加载登录页面。我已经看到了许多类似的问题,并且我知道有时候在与社交网站进行身份验证时,人们会对此遇到问题,但是我没有使用任何形式的社交身份验证。我已经将LOGIN_REDIRECT_URL设置为所需页面的URL,并且尝试创建适配器,如下所示:
class AccountAdapter(DefaultAccountAdapter):
def is_open_for_signup(self,request):
return getattr(settings,"ACCOUNT_ALLOW_REGISTRATION",True)
def get_login_redirect_url(self,request):
path = "/news/"
return path
其中get_login_redirect_url应该将应用程序定向到所需的页面。我在其他帖子中已经读到,下一页(在本例中为“新闻”)没有被加载的事实意味着allauth实际上并未登录我,这就是为什么我最终只是重新加载登录页面。有人能指出我正确的方向吗?谢谢!
其他信息 这是我现在尝试处理登录的方式。
<!-- <form class="login" method="POST" action="{% url 'account_login' %}"> -->
<form class="login" method="POST" action="{% if request.path|slice:':6' == '/login' %}/news{% else %}{{request.path}}{% endif %}">
{% csrf_token %}
{{ form|crispy }}
{% if redirect_field_value %}
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
{% endif %}
<div class="form-group container-login100-form-btn">
<button type="submit" class="login100-form-btn">{% trans 'Log In' %}</button>
</div>
<div class="form-group container-login100-form-btn">
<a href="{% url 'account_signup' %}" class="btn btn-link">{% trans 'Or sign up for ConnectHer here' %}</a>
<a href="{% url 'account_reset_password' %}" class="btn btn-link pull-right">{% trans 'Forgot your password?' %}</a>
</div>
</form>
顶部的注释行是尝试解决问题之前我的原始表格版本。
解决方法
您如何向用户显示login
链接?我敢打赌,您登录页面上的链接类似于:
<a href="/login?next={{ request.path }}">Login</a>
基本上是(在登录页面上):
<a href="/login?next=/login">Login</a>
立即将您发送回去。您可以在模板中进行测试以设置next=
参数:
<form class="login" method="POST" action="/login?next={% if request.path|slice:':6' == '/login' %}/news{% else %}{{request.path}}{% endif %}">
奖金:
以下是向模板添加|startswith
过滤器的方法:
def startswith(val1,val2):
if not val1:
return False
else:
return val1.startswith(val2)
register.filter("startswith",startswith)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。