我在安装django-socialregistration应用时遇到问题!

5 投票
2 回答
962 浏览
提问于 2025-04-16 02:40

我是一名Django初学者,正在尝试让django-registration正常工作,但遇到了一些问题。我按照他们网站上的安装说明进行了操作,但对我来说,这些说明并不是特别清楚。我做了以下几步:

  1. 我使用pip安装了oauth2和python-openid这两个包。然后,我把facebook-python-sdk包中的facebook.py文件复制到了我的主Django应用目录里。(写到这里,我在想这个文件是不是应该复制到socialregistration应用目录里?这样做有区别吗?)
  2. 我把socialregistration目录复制到了我的Django项目目录中。
  3. 我在INSTALLED_APPS设置中添加了socialregistration。
  4. 为了把socialregistration.urls添加到我的urls.py文件中,我加了以下这一行(不太确定这样做是否正确,因为说明里没有详细说明):
    (r'^social/', include('socialregistration.urls')),
  5. 我把facebook的API密钥和秘密密钥添加到了我的设置中。
  6. 我把socialregistration.auth.FacebookAuth添加到了AUTHENTICATION_BACKENDS中。
  7. 我把socialregistration.middleware.FacebookMiddleware添加到了MIDDLEWARE_CLASSES中。
  8. 最后,我把说明中给的三个facebook标签添加到了我的一个模板里。
  9. 当我加载我的网站时,出现了以下错误:
    在渲染时捕获到AttributeError:请将django.core.context_processors.request上下文处理器添加到你的settings.TEMPLATE_CONTEXT_PROCESSORS设置中。

那么,我该怎么办呢?我以为安装会很简单,但显然并不是这样。任何帮助都将不胜感激!

哦,对了,我使用的是Django 1.2.1和Python 2.6。

谢谢!

2 个回答

3

请在你的设置中添加 django.core.context_processors.request 这个上下文处理器。

你做了吗?

你需要修改一下 TEMPLATE_CONTEXT_PROCESSORS,把 django.core.context_processors.request 加进去。

3

我找到了问题。当我的视图渲染模板时,需要把请求上下文(RequestContext)传递给模板。

return render_to_response('my_template.html', my_data_dictionary, context_instance=RequestContext(request))

来源:http://lincolnloop.com/blog/2008/may/10/getting-requestcontext-your-templates/

撰写回答