刚开始学习django,我想加入allauth app。 一直试图弄清楚这一点,并没有在其他问题中找到答案。 每当我尝试添加其中一个社交登录时,我甚至无法获得登录屏幕并且django抱怨:
get_login_url() keywords must be strings
尝试呈现提供者列表时。 (我复制了allauth附带的示例中的base,index和profile)
在我使用其中一个登录之前,我已经读过,我需要在管理界面中添加社交应用。所以在管理界面中,我想尝试一个更简单的,所以我选择了OpenId。由于我没有Facebook应用程序ID或其他任何东西,我想用OpenId,我不需要它。
我正忙着使用Key和Secret来注册社交应用程序。我是新手,但我认为这更适合OAuth。但是如果我不包含它,它会将字段标记为红色并要求它们。我在哪里可以找到/生成密钥/密钥?
另外,要使用OpenId,我应该指定一个像谷歌或雅虎这样的网站,还是只有一个“OpenId”网站?
我仍在使用manage.py runserver,如果这有任何区别的话。但我以为我仍然可以让页面“渲染”。
答案 0 :(得分:1)
您运行的是哪个版本的Python?如果您使用的是旧的2.6版本,那么您可能会遇到此处描述的问题:
http://cuu508.wordpress.com/2011/01/27/keywords-must-be-strings/
如果确定您的问题,请告诉我。如果是这样,我会检查一下allauth
是否可以使你的版本更好...
更新:还没有时间自己测试一下,你能试试这个改变吗?:
--- a/allauth/socialaccount/templatetags/socialaccount.py
+++ b/allauth/socialaccount/templatetags/socialaccount.py
@@ -13,7 +13,7 @@ class ProviderLoginURLNode(template.Node):
def render(self, context):
provider_id = self.provider_id_var.resolve(context)
provider = providers.registry.by_id(provider_id)
- query = dict([(name, var.resolve(context)) for name, var
+ query = dict([(str(name), var.resolve(context)) for name, var
in self.params.iteritems()])
request = context['request']
if not query.has_key('next'):