Django-allauth配置疑问

6
我正在使用 Django 1.5.1 和 django-allauth,在设置它时有一些问题: 1. 配置 urls.py 文档中说你需要在 urls.py 文件中添加以下内容:
urlpatterns = patterns('',
    ...
    (r'^accounts/', include('allauth.urls')),
    ...
)

问题在于,我已经有一个名为accounts的自定义应用程序,并且我已经使用以下URL模式:
(r'^accounts/', include('accounts.urls')),

这里存在一个命名冲突,与 accounts/ 正则表达式 URL 重复。我的问题是:我能否将 allauth 的 URL 模式重命名为 (r'^auth/', include('allauth.urls')) 而不会出现问题?或者,将自己的 URL 重命名为类似于 (r'^users/', include('users.urls'))(并将自己的 accounts 应用程序重命名为 users 以保持命名一致性)是否更好?

2. 自定义 allauth 默认模板

如何正确地自定义登录等默认模板?我认为直接修改库不是最好的方法。我猜应该通过 templates 目录使用一些具体的目录层次结构来完成。此外,我不知道在覆盖这些模板时是否必须提供某种 base.html 文件进行扩展,或者可以使用站点的所有页面都继承的 base.html 文件而不会出现问题。您能给我举个例子吗?

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

当我登录和注销后访问管理员面板时,历史记录会出现,但如果我刷新页面,则会消失。我认为这可能与Django消息有关:

admin login

4. 将 SOCIALACCOUNT_PROVIDERS 设置为什么意思?

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

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

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

谢谢!

1个回答

14

关于1):

  • 只要完全匹配的URL模式没有重叠,就不会发生冲突。例如:如果您的账户应用程序与“/accounts/login/”匹配,则确实存在冲突,因为allauth也在寻找该URL。但是,如果您的账户应用程序仅匹配以/accounts/为前缀的其他URL,则没有问题。

  • 如果您坚持要这样做,确实可以将allauth的URL放在不同的路径下。allauth使用基于名称的URL反转,因此新的路径前缀将自动被识别。

至于2):

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

4) 可选

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


谢谢 @pennersr,你回得好快!关于1),我这里不会有问题。关于2),我已经在示例项目中设置了模板,但是我有一个疑问:connections.htmlsignup.html都继承自socialaccount/base.html,但我在 socialaccount 中找不到这个模板,我只在 account 中找到了它。我不明白这一点。另外,我更新了我的问题并提出了一些更多的疑问。你能帮我解决吗?感谢你与我们分享这个库! :) - Caumons
示例项目覆盖了一些模板,而不是全部。 socialaccount/base.html 没有被覆盖,因此你在那里找不到它。顺便说一句,答案已更新以反映新的问题... - pennersr
嗨@pennersr,再次感谢!3、4和5都可以。关于2(模板):我已经设置好了,它正在工作,但我不明白为什么connections.htmlsignup.html会正确呈现,如果它们从一个“不存在”的模板(socialaccount/base.html)扩展而来。这些的“默认”是哪个?我已经更新了account/base.html以扩展我的自定义基础layout.hml,并使用在allauth bootstrap模板中定义的块更新了此模板。再次感谢! :) - Caumons
模板确实存在--请在这里查看:https://github.com/pennersr/django-allauth/blob/0.11.1/allauth/templates/socialaccount/base.html - pennersr
这正是我一直在寻找的。感谢你的回答,我会给你25个声望值(接受+点赞)来表达我的感激之情! - Caumons

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接