0

我正在使用 django-socialregistration,但我得到了 KeyError。

我在 view.py 上的代码如下:

def login_new(request):
    return render_to_response(
        'login_new.html', dict(
        facebook=FacebookProfile.objects.all(),
        twitter=TwitterProfile.objects.all(),
        openid=OpenIDProfile.objects.all(),
        linkedin=LinkedInProfile.objects.all(),
        github=GithubProfile.objects.all(),
        foursquare=FoursquareProfile.objects.all(),
        tumblr=TumblrProfile.objects.all(),
        instagram=InstagramProfile.objects.all(),
        ), context_instance=RequestContext(request))

并在模板文件(login_new.html)上

<html>
<head><title></title></head>
<body>

{% load openid %}
{% openid_form 'https://www.google.com/accounts/o8/id' 'login/with/google.png' %}

</body>
</html>

错误发生在

{% openid_form 'https://www.google.com/accounts/o8/id' 'login/with/google.png' %}

并在 /usr/lib/python2.7/site-packages/django/core/handlers/base.py 中

get_response response = callback(request, *callback_args, **callback_kwargs)

文档的会话注释部分,有以下声明:

“开始注册过程时,所有用户的临时数据都存储在用户的会话中。如果您在 127.0.0.1:8000 上开发,则必须将回调 URL 也设置为以 127.0.0.1:8000 开头,否则您返回站点时将获得一个新会话,并且 socialregistration 将无法找到临时数据并随后引发 KeyError。”

我认为这可能是这个错误的原因,但我不知道我能从这个声明中做些什么。我可以修改哪个文件?我可以执行什么命令?

提前致谢 :)

4

1 回答 1

1

确保默认站点(来自站点框架)指向http://127.0.0.1:8000/. 它默认为www.example.com.

于 2012-09-26T10:29:40.603 回答