[英]django-allauth configuration doubts
我正在使用django-allauth和Django 1.5.1,我在設置時遇到了一些問題:
1.配置urls.py
文檔說你必須在urls.py
文件中添加以下內容:
urlpatterns = patterns('',
...
(r'^accounts/', include('allauth.urls')),
...
)
問題是我已經有一個名為accounts
的自定義應用程序,我已經使用了以下URL模式:
(r'^accounts/', include('accounts.urls')),
所以我在這里使用accounts/
regex URL進行命名沖突。 我的問題是:我可以將allauth
URL模式重命名為(r'^auth/', include('allauth.urls'))
而不會出現問題,或者這樣做是不安全的並且最好重命名我自己的類似於(r'^users/', include('users.urls'))
(並將我的帳戶應用程序重命名為用戶以命名一致性)。
2.自定義allauth默認模板
自定義登錄等默認模板的正確方法是什么? 我認為直接修改庫不是最好的方法。 我想應該通過templates
目錄使用一些具體的目錄層次結構來完成。 此外,我不知道是否必須提供某種類型的base.html
文件,以便在覆蓋這些模板或所有頁面擴展的網站的base.html
可以毫無問題地使用。 你能用這個來說明我嗎?
3.管理員登錄表單在第一次訪問時顯示登錄和注銷
當我在一些登錄和注銷后訪問管理面板時,會顯示歷史記錄,但如果我刷新頁面則會消失。 我認為這必須與django消息有關:
4.設置SOCIALACCOUNT_PROVIDERS
名為SOCIALACCOUNT_PROVIDERS
的字典設置是可選的還是必須設置?
5.當用戶使用第三方應用登錄時,如何計算密碼?
創建用戶時,它有一個密碼,但是如何計算? 並且...它是否有用或者它只是這個必填字段的占位符? 用戶可以使用它進行本地登錄嗎?
謝謝!
關於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
擴展的模板覆蓋base.html
3):allauth使用Django消息框架。 請參閱: https : //docs.djangoproject.com/en/dev/ref/contrib/messages/#expiration-of-messages - 如果您不迭代這些消息以顯示它們,它們就不會過期。 顯然,您沒有在模板中顯示消息。 因此,它們會堆積起來直到管理員出現,這會呈現(並清除)到目前為止收集的所有消息...
4)可選
5)沒有密碼設置,這意味着用戶只能使用第三方帳戶登錄,直到他實際設置密碼(/ accounts / password / set /)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.