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 发生命名冲突。我的问题是:我可以将allauthURL 模式重命名为(r'^auth/', include('allauth.urls'))没有问题,还是这样做不安全,最好将我自己的 URL 重命名为类似(r'^users/', include('users.urls'))(并将我的帐户应用程序重命名为用户以保持命名一致性)。

2.自定义allauth默认模板

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

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

当我在一些登录和注销后访问管理面板时,会出现历史记录,但如果我刷新页面,它就会消失。我认为这一定与 django 消息有关:

管理员登录

4.设置SOCIALACCOUNT_PROVIDERS

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

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

创建用户时,它有一个密码,但它是如何计算的?并且...它有用还是只是此必填字段的占位符?用户可以用它来本地登录吗?

谢谢!

4

1 回答 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/)。

于 2013-05-29T22:14:07.850 回答