Cau*_*ons 6 python django login django-allauth
我正在使用django-allauth和Django 1.5.1,我在设置时遇到了一些问题:
1.配置 urls.py
文档说您必须将以下内容添加到urls.py文件中:
urlpatterns = patterns('',
...
(r'^accounts/', include('allauth.urls')),
...
)
Run Code Online (Sandbox Code Playgroud)
问题是我已经调用了一个自定义应用程序accounts,我已经使用了以下URL模式:
(r'^accounts/', include('accounts.urls')),
Run Code Online (Sandbox Code Playgroud)
所以我在这里使用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.当用户使用第三方应用登录时,如何计算密码?
创建用户时,它有一个密码,但是如何计算?并且...它是否有用或者它只是这个必填字段的占位符?用户可以使用它进行本地登录吗?
谢谢!
pen*_*rsr 14
关于1):
只要完全匹配的URL模式中没有重叠,就不会发生冲突.例如:如果您的帐户应用与"/ accounts/login /"匹配,那么确实存在冲突,因为allauth也在为该URL进行攻击.但是,如果您的帐户应用只是将其他网址与/ accounts /作为前缀匹配,那么您就可以了.
如果您坚持,您确实可以将allauth URL放在不同的路径下.allauth使用基于名称的URL反转,因此将自动拾取新路径前缀.
至于2):
allauth模板没有什么特别之处.您可以像对待任何其他Django应用程序一样覆盖它们.
看看示例应用程序.它具有Bootstrap和统一模板覆盖.可以通过取消注释这一行来启用它们:https://github.com/pennersr/django-allauth/blob/901485557d4ddee30fed920f2159cdf499c39e1c/example/example/settings.py#L126
所有allauth模板都从一个名为的基本模板继承base.html.我希望你的项目也有一个基本模板.要么覆盖base.html你的,要么覆盖base.html延伸的模板yourbase.html
3):allauth使用Django消息框架.请参阅:https: //docs.djangoproject.com/en/dev/ref/contrib/messages/#expiration-of-messages - 如果您不迭代这些消息以显示它们,它们就不会过期.显然,您没有在模板中显示消息.因此,它们会堆积起来直到管理员出现,这会呈现(并清除)到目前为止收集的所有消息...
4)可选
5)没有密码设置,这意味着用户只能使用第三方帐户登录,直到他实际设置密码(/ accounts/password/set /).
| 归档时间: |
|
| 查看次数: |
2635 次 |
| 最近记录: |