轻松地将密码重置工作流添加到django项目中。

django-passreset的Python项目详细描述


此应用程序简化了向您的 地点。它利用Django的退出密码重置工作流,但 简化了向站点添加url的过程。这也允许你 使用命名空间为一个站点创建多个密码重置工作流。

安装

只需添加“passreset”已安装的应用程序中,并包括passreset.url 在urlconf模块中:

fromdjango.conf.urlsimporturl,includeimportpassreseturlpatterns=[#...url(r'^profile/passreset/',include(passreset.urls))]

然后,您可以通过反转passreset:reset password来链接到密码重置窗体

<a href="{% url "passreset:reset-password" %}">Forgot password?</a>

在django内置密码的帮助下,应用程序可以处理其余的问题 重置工作流。注意,passreset.url是一个对象,而不是一个模块。使用 include('passreset.url')将引发重要错误。

<>快速添加密码重置功能到你现有的管理员,只包括 passreset.admin\u网址

fromdjango.conf.urls.defaultsimporturl,includeimportpassreseturlpatterns=[url(r'^admin/passreset/',include(passreset.admin_urls),url(r'^admin/',include(admin.site.urls)),)

为了方便起见,passreset应用程序会自动覆盖默认设置 添加“忘记密码”的管理站点登录模板。“链接。

命名空间

如果一个站点需要多个密码重置工作流,则必须使用 passreset.urls\ns()函数。请注意,不应使用命名空间 要包含的关键字参数:

importpassreseturpatterns=[url(r'^profile/reset-password',include(passreset.urls_ns('user-passreset',login_url='/profile/login'))),url(r'^staff/reset-password',include(passreset.urls_ns('staff-passreset',login_url='/staff/loging'))),]

如果未提供登录URL,则使用settings.login URL。你也可以通过 template_path参数指定应用程序中使用的模板的基路径 实例。

然后,您可以使用新的名称空间来反转任何passreset url:

<a href="{% url "staff-passreset:reset-password" %}">Forgot password?</a>

模板

默认模板窗体passreset all extend“passreset/base.html”,您可以 在项目中为此模板创建覆盖(例如, my_project/templates/passreset/base.html,并让它扩展站点的基础 模板。模板都使用名为passreset_content的块。所以,你们 需要做的是在网站的主要内容块中包含该块:

{% extends "mysite/base.html" %}
{% block content %}
  {% block passreset_content %}
  {% endblock %}
{% endblock %}

urls\u ns函数还接受一个tpl\u path参数,它允许您 重写passreset使用的任何模板。路径是模板 可能包含以下任何内容的目录:

  • reset_password.html
  • done.html
  • confirm.html
  • complete.html
  • email.html
  • subject.ttx

管理

passreset.admin\uURLurlconf基本上是 passreset.url(admin-passreset,login-url='admin:login')。如前所述 上面,passreset用“forgot”覆盖默认的管理员登录模板 密码?“link,基本上是这样的:

<ahref="{% url admin-passreset:reset-password }">Forgot password?</a>

您可以将管理员passreset url与另一个passreset实例一起使用 不使用命名空间:

urlpatterns+=patterns('',url(r'^admin/passreset/',include(passreset.admin_urls)),url(r'^admin/',include(admin.site.urls)),url(r'^profile/passreset',include('passreset.urls')),)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?