重置 密码这这功能。 我是没有在,stark组件中。 内置的。
所以需要,自己进行定制。
也就只是,在已有的增删改查的基础上,再增加一条url  和相对应的  视图函数。

好的是, 我已经预留了,增加的接口:
  

class UserInfoHandler(StartHandler):

    def display_reset_pwd(self, obj=None, is_header=None):
if is_header:
return "重置密码"
# return mark_safe("<a href='#'>重置密码</a>" % self.memory_url(get_url_name=self.get_del_url_name, pk=obj.pk))
return mark_safe("<a href='#'>重置密码</a>") list_display = ["name", "nickname", "age", get_choice_text("性别", "gender"), "telephone", "email", "depart", "roles",
display_reset_pwd] def reset_password(self, request, pk):
pass def extra_url(self):
'''在现有的url基础上 再增加一个url。 但是视图函数需要自己写了'''
partterns = [
re_path(r"reset/pwd(?P<pk>\d+)/$", self.wrapper(self.reset_password), name=self.get_url_name("reset_pwd")),
]
return partterns

在展示的页面上。 新增一个  重置密码的按钮。  写个函数就好了。display_reset_pwd(self, obj=None, is_header=None):  然后添加到list_display 列表中。

重写  extra_url  方法。 增加一条url的线路。   视图函数自己在写一个就好了。 然后是 这条url 的别名  name=self.get_url_name("reset_pwd")  自己看着来别重复就好

到这里已经增加了url:

最下面的一条, 就是刚刚增加的  那条url:
最后的任务, 就是 写上视图函数, 并且。为重置密码按钮, 添加上 href 属性就可以了:

    def display_reset_pwd(self, obj=None, is_header=None):
if is_header:
return "重置密码"
rest_url = self.memory_url(get_url_name=self.get_url_name("reset_pwd"), pk=obj.pk)
return mark_safe("<a href='%s'>重置密码</a>" % rest_url)

用内置的,  memory_url  就可以了!  传入的参数,除了 当期那field 对象的id  还有就是。 当前url 的别名。 get_url_name("reset_pwd")  就可以获取到

然后就是视图的问题。:

需要,一个 form 组件。

class ResetPassword(StarkForm):
password = forms.CharField(label="密码", widget=forms.PasswordInput)
confirm_password = forms.CharField(label="确认密码", widget=forms.PasswordInput) def clean_confirm_password(self):
password = self.cleaned_data.get("password")
confirm_password = self.cleaned_data.get("confirm_password")
if password and confirm_password:
if password != confirm_password:
raise ValidationError("两次密码输入不一致")
return confirm_password def clean(self):
'''对密码进行加密, 可以在clean 里面来做。'''
password = self.cleaned_data["password"]
self.cleaned_data["password"] = pwdmd5.creatr_md5(password)
return self.cleaned_data

ok: 视图

    def reset_password(self, request, pk):
'''重置密码的视图函数'''
userinfo_obj = models.UserInfo.objects.filter(pk=pk).first()
if not userinfo_obj:
return HttpResponse("用户不存在,无法重置密码")
if request.method == "POST":
form = ResetPassword(request.POST)
if form.is_valid():
userinfo_obj.password = form.cleaned_data["password"] # 为userinfo_obj的password重新赋值
userinfo_obj.save() # 然后保存
return redirect(self.memory_reverse(get_url_name=self.get_list_url_name))
return render(request, "stark/change.html", {"form": form})
form = ResetPassword()
return render(request, "stark/change.html", {"form": form})

完成。  都是已经记录过的知识点。

crm开发之用户重置密码的更多相关文章

  1. dede 5.7 任意用户重置密码前台

    返回了重置的链接,还要把&amp删除了,就可以重置密码了 结果只能改test的密码,进去过后,这个居然是admin的密码,有点头大,感觉这样就没有意思了 我是直接上传的一句话,用菜刀连才有乐趣 ...

  2. crm开发之用户ModelForm定制和密码加密

    写了这么多的定制 功能.终于可以定制一下了!因为是 stark 和 rbac 两个组建. 一起使用. 所以在这里,再记录一下.需要注意的点: 先放出 目录结构: 先从  stark 开始.使用star ...

  3. ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题

    最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同 ...

  4. [PHP] ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题

    reference to : http://www.cnblogs.com/roadofstudy/p/7446690.html 最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入roo ...

  5. CentOS中对MySql的root用户重置密码

    由于一般的修改ini文件来完成无密码登录数据库容易造成较大风险,所以使用修改启动服务参数的方式来更新user表,达到无密码登陆的目的. 1.关闭系统下运行的mysql服务 (1)杀掉进程号达到关闭目的 ...

  6. Maven-007-Nexus 用户添加,用户角色分配,用户修改密码,管理员重置用户密码

    配置好 maven nexus 私服后,默认的用户可通过查看[Users]查看当前私服中所存在的用户,如下图所示:

  7. Ubuntu 16.04 重置密码

    忘记了你的Ubuntu用户密码,登录不了系统:不要紧,在Ubuntu上重置密码是很简单的,即使你忘记了用户名. #1 进入Recovery Mode Recovery Mode即恢复模式:在Grub启 ...

  8. [ Laravel 5.6 文档 ] 安全系列 —— 重置密码

    http://laravelacademy.org/post/8929.html 简介 想要快速实现该功能?只需要在新安装的 Laravel 应用下运行 php artisan make:auth(如 ...

  9. ArcGIS Server Manager 重置密码

    重置忘记的密码 ArcGIS 10.5 (Windows) | 其他版本 根据以下说明为标识存储中的用户或主站点管理员帐户重置密码. 为标识存储中的用户重置密码 可按照以下步骤为标识存储中的用户重置密 ...

随机推荐

  1. Kafka connect in practice(3): distributed mode mysql binlog ->kafka->hive

    In the previous post Kafka connect in practice(1): standalone, I have introduced about the basics of ...

  2. tomcat9配置https

    首先去阿里云申请一个pfx证书,可以免费获得. 其次,在tomcat的server.xml增加如下connector <Connector port="443" protoc ...

  3. Python课程第三天作业

    一.统计⽂件数据中出现的的所有字符与该字符出现的个数(不区分⼤⼩写,标点与空格也算) ⽂件内容: hello friend, can you speak English! # 结果: { 'h': 1 ...

  4. WPF xml配置文件里面的大于小于号转义

    转义字符:<![CDATA[]]>,将要转义的字符放到中括号中,比如要转小于号:<,则换为<![CDATA[<]]> <?xml version=" ...

  5. python 运用numpy库与matplotlib库绘制数据图

    代码一 import numpy as np import matplotlib.pyplot as plt x=np.linspace(0,6,100) y=np.cos(2*np.pi*x)*np ...

  6. leetcode每日刷题计划-简单篇day5

    刷题成习惯以后感觉挺好的 Num 27 移除元素 Remove Element 跟那个排序去掉相同的一样,len标记然后新的不重复的直接放到len class Solution { public: i ...

  7. Spring Boot 初识

    发展到今天,spring已经是一个大家族了,如果想要使用其中的两到三个组件就会有多复杂的配置,有时候还有会版本不一致的错误,让人很无奈.于是,就有了spring Boot,spring  Boot   ...

  8. JUnit4源码学习笔记

    先上一个在Spring-test下运行的调用栈 自底向上: JUnitStarter IDEA对JUnit的支持,调用JUnitCore.run(Runner),将注解@RunWith指定的Runne ...

  9. python学习笔记---环境的安装,pip命令,数据类型,运算

    1.进入python环境: python 2:py -2 python 3:py -3 2.退出python环境 exit()/quit()/ctrl+z+enter ctrl+z+enter没有尝试 ...

  10. 深度学习原理与框架- tf.nn.conv2d_transpose(反卷积操作) tf.nn.conv2d_transpose(进行反卷积操作) 对于stride的理解存在问题?

    反卷积操作: 首先对需要进行维度扩张的feature_map 进行补零操作,然后使用3*3的卷积核,进行卷积操作,使得其维度进行扩张,图中可以看出,2*2的feature经过卷积变成了4*4.    ...