django-allauth配置疑惑

时间:2013-05-29 14:51:27

标签: python django login django-allauth

我正在使用django-allauth和Django 1.5.1,我在设置时遇到了一些问题:

1。配置urls.py

文档说您必须将以下内容添加到urls.py文件中:

urlpatterns = patterns('',
    ...
    (r'^accounts/', include('allauth.urls')),
    ...
)

问题是我已经有一个名为accounts的自定义应用,我已经使用了以下网址模式:

(r'^accounts/', include('accounts.urls')),

所以我在这里使用accounts/正则表达式网址进行了命名冲突。我的问题是:我可以将allauth网址格式重命名为(r'^auth/', include('allauth.urls'))而不会出现问题,或者这样做是不安全的,最好将我自己的网址重命名为{{1} (并将我的帐户应用重命名给用户以获得命名一致性)。

2。自定义allauth默认模板

自定义登录等默认模板的正确方法是什么?我认为直接修改库不是最好的方法。我想它应该通过(r'^users/', include('users.urls'))目录使用一些具体的目录层次结构来完成。另外,我不知道是否必须提供某种templates文件以便在覆盖这些模板时延伸,或者可以毫无问题地使用所有页面扩展的网站base.html。你能用这个来说明我吗?

第3。管理员登录表单在首次访问时显示登录和注销

当我在某些登录和注销后访问管理面板时,会显示历史记录,但如果我刷新页面则会消失。我认为这必须与django消息相关:

admin login

4。设置base.html

名为SOCIALACCOUNT_PROVIDERS的字典设置是可选的还是必须设置?

5。当用户使用第三方应用登录时,如何计算密码?

创建用户时,它有密码,但是如何计算?并且...它是否有用或者它只是这个必填字段的占位符?用户可以使用它进行本地登录吗?

谢谢!

1 个答案:

答案 0 :(得分:14)

关于1):

  • 只要完全匹配的网址格式没有重叠,就不会发生冲突。例如:如果您的帐户应用与“/ accounts / login /”匹配,那么确实存在冲突,因为allauth也在为该URL进行攻击。但是,如果您的帐户应用只是将其他网址与/ accounts /作为前缀匹配,那么您就可以了。

  • 如果您坚持,您确实可以将allauth网址放在不同的路径下。 allauth使用基于名称的URL反转,因此将自动选取新的路径前缀。

至于2):

3):allauth使用Django消息框架。看到: https://docs.djangoproject.com/en/dev/ref/contrib/messages/#expiration-of-messages - 如果您不迭代消息以显示消息,则它们不会过期。显然,您没有在模板中显示消息。因此,它们会一直堆积,直到管理员出现,这会呈现(并清除)到目前为止收集的所有邮件...

4)可选

5)没有密码设置,这意味着,用户只能使用第三方帐户登录,直到他实际设置密码(/ accounts / password / set /)。