无法访问request.GET [' next']在Django All Auth的get_login_redirect_url中

时间:2014-07-15 05:27:42

标签: python django django-allauth

我的表单提交如下

<form class="form-signin" role="form" action="{% provider_login_url "facebook" method="js_sdk" next="/next"%}">

我使用自己的AccountAdapter和方法

覆盖了DefaultAccountAdapter
def get_login_redirect_url(self, request):
    print request.GET['next']
    ...

但是请求丢失了下一个参数,并且print返回错误,因为request.GET中没有“next”。 为什么我不能访问下一个参数? 在创建社交用户名/密码用户之后,我最初使用get_login_redirect_url来处理不同的网址重定向。现在,我需要能够为社交用户登录的另一个行为变量指定URL中的下一个参数,但是我无法访问下一个参数,因为它似乎没有被传递。

2 个答案:

答案 0 :(得分:0)

我不确定能否为您的问题提供准确的解决方案。但我认为有道理。

要从url访问下一个参数, 网址应该是,

http://127.0.0.1:8000/index?next=2

如果您必须以上述方式形成网址,则可以访问相应next

request个对象的view method参数

print request.GET.get('next')

因此,请务必使用正确的查询字符串refer

格式化请求网址

根据您的情况,

我不知道{% provider_login_url %}模板标记

我假设在您的代码呈现后会生成网址index,然后我会附加我的查询字符串next

<form class="form-signin" role="form" action="/index?next=someValue">

你可以另外尝试,

{% provider_login_url "facebook" next=next %}    

source

答案 1 :(得分:0)

我遇到了类似的问题。但是,我没有登录facebook。 request.GET总是空的。

我认为您可以尝试使用jQuery手动将next参数附加到action的{​​{1}}属性。见this question。它解决了我的问题。

相关问题