2014-12-11 35 views
2

我已經在我的項目中安裝了Django-Registration-Redux應用程序,並設置了默認的一步註冊後端,並且它迄今爲止工作正常。現在我想通過添加密碼更改機制來擴展我的應用程序的功能。任何想法或鏈接,我可以開始尋找。提前密碼重置功能Django-Registration-Redux應用程序

感謝

PD:Django的註冊,終極版的文檔不涉及這個話題。

回答

4

django-registration-redux也支持密碼更改功能。密碼更改的網址是http://your-port-number/accounts/password/change。在您的本地主機中,一旦您輸入http://your-port-address/accounts/,您將在屏幕上獲得有關url映射的所有信息。使用這些url映射,您可以編寫特定的html模板並直接在您的應用中使用它們。註冊模板可以找到here 希望這有助於。

0

通過雷夫·阿澤帕迪和大衛·馬克斯韋爾這本書「探戈的Django」包含在第11章本章詳細介紹使用「Django的登記,終極版的應用程序」一個很好的例子 - 過程中安裝/設置這個模塊並配置設置,查看&以清晰簡潔的方式呈現模式。

根據這本書,模塊'Django-Registration-Redux'沒有爲它公開的url提供模板。您需要手動創建這些模板 - ,因爲這些模板往往是特定於應用程序的(您應該在項目的模板目錄中創建一個名爲registration的目錄以存儲這些模板文件。)您還應該看到Anders Hofstee's Templates需要一些提示來構建自己的模板。我的是如下(基於他的模板)

# <my_django_project_directory>/templates/accounts/password_change_form.html 

{% extends "<my_app_name>/base.html" %} 
{% block body_block %} 
    <h1>Change your password</h1> 
    <form method="post" action="."> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <input type="submit" value="Submit" /> 
    </form> 
{% endblock %} 

假設你已經配置在該項目的settings.py的模塊,你應該包括url_patterns以下列表中的網址在項目的urls.py文件 -

發現
url(r'^accounts/', include('registration.backends.simple.urls')), 

正如前面的答案所解釋的,更改登錄用戶的密碼的URL是http://<projects_root_url>/accounts/password/change。 您應通過更新菜單項將此URL提供給登錄用戶以進行訪問。繼續本書的例子,我已經更新了我的基本模板以顯示密碼更改網址。考慮下面的代碼:

# <my_django_project_directory>/templates/<my_app_name>/base.html 
{% if user.is_authenticated %} 
    <li><a href="{% url 'auth_logout' %}?next=/rango/">Logout</a></li> 
    <li><a href="/accounts/password/change/">Change Password</a></li> 
{% else %} 
    <li><a href="{% url 'auth_login' %}">Login</a></li> 
    <li><a href="{% url 'registration_register' %}">Sign Up</a></li> 
{% endif %} 

我希望這有助於!如果沒有,那麼我強烈建議你閱讀上面提到的這本書!簡單的例子,簡單易懂的說明,最重要的是,這個例子並沒有在任何配置上花費太多精力。

注意:本書的示例基於django 1.9。我的操作系統是Ubuntu 16.04和python版本 - 3.5.2。 My repository包含書中的工作示例。

相關問題