2013-05-29 43 views
6

我使用django-allauth Django的1.5.1和我有它设置最多时几个问题:Django的allauth配置怀疑

1.配置urls.py

该文档说,你必须以下内容添加到urls.py文件:

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

的问题是,我已经有一个自定义的应用程序称为accounts,我已经使用了跟随着g网址格式:

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

所以我在这里命名冲突与accounts/正则表达式的URL。我的问题是:我可以将allauth网址格式重命名为(r'^auth/', include('allauth.urls'))而没有问题,或者这样做不安全,最好将我自己的网址重命名为(r'^users/', include('users.urls'))之类的内容(并将我的帐户应用重命名为用户名称一致性)。

2.自定义allauth默认模板

什么是自定义登录的默认模板等的正确方法?我认为直接修改图书馆并不是最好的方法。我想这应该通过templates目录使用一些具体的目录层次结构来完成。此外,我不知道是否必须提供某种base.html文件以覆盖这些模板或网站的base.html以扩展所有页面可以毫无问题地使用。你能用这个来说明我吗?

3.管理员登录表单显示登录和注销第一次它的访问

当我一些登录后访问管理面板和注销出现的历史,但如果我刷新页面,然后消失。我想,这与Django的消息相关的必须的东西:

admin login

4.设置SOCIALACCOUNT_PROVIDERS

是字典设置所谓SOCIALACCOUNT_PROVIDERS可选还是必须设置?

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

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

谢谢!

回答

14

对于1):

  • 没有碰撞只要有处于完全匹配的URL模式没有重叠。例如:如果您的账户应用程序与“/ accounts/login /”匹配,那么allauth也在为该URL寻找连接,确实存在冲突。但是,如果您的帐户应用程序只是将其他网址与/ accounts /作为前缀匹配,那么您就可以。

  • 如果你坚持,你确实可以把allauth URL放在不同的路径下面。 allauth使用基于名称的URL反转,所以新的路径前缀将被自动选取。

至于2):

3延伸)一个模板覆盖base.html:allauth使用Django的消息框架。请参阅: https://docs.djangoproject.com/en/dev/ref/contrib/messages/#expiration-of-messages - 如果您不遍历消息以显示它们,则它们不会过期。所以显然你没有在你的模板中显示消息。因此,他们堆,直到管理员出现这使得(并清除)为止收集到的所有信息......

4)可选

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

+0

感谢@pennersr为您的快速响应!好的1)我在这里没有问题。关于2)我已经在示例项目中设置了模板,但我有一个疑问:'connections.html'和'signup.html'都从'socialaccount/base.html'继承,但我看不到这个模板在socialaccount我看到它的帐户。我不明白这一点。更重要的是,我更加怀疑地更新了我的问题。你能帮我一把吗?并感谢您与我们分享这个图书馆! :) – Caumons

+0

该示例项目覆盖了一些模板,并非全部。 'socialaccount/base.html'没有被覆盖,所以你不会在那里找到它。顺便说一句,回答更新,以反映新问题... – pennersr

+0

嗨@pennersr和再次感谢!确定3,4和5.对于2(模板):我已经设置它,它的工作,但我不明白为什么'connections.html'和'signup.html'渲染正确,如果他们从一个“不存在”的模板('socialaccount/base.html')。哪个是这些“默认”的?我已经更新了'account/base.html'来扩展我的自定义库'layout.hml',并使用allauth引导模板中定义的块更新了这个'base.html'。再次感谢! :) – Caumons