重置 密码这这功能。 我是没有在,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. asp源码微信扫码授权登陆电脑版

    网站接入微信扫码登录并获取用户基本信息(完美绕过微信开放平台)电脑版网站实现微信扫码登录,注册会员还要设密码太麻烦,会员也记不住密码,采用微信扫码登录网站更方便,会员无需设密码,用他的微信做为系统登录 ...

  2. sql中的等于和不等于, '=' ,'!=','<>','is null'....

    不等于:<> ,!=,~= ,^= 这四个符号据说都可以在oracle中表示不等于,但是试了之后发现<> ,!= ,^=是可以的,~=不行,需要注意的是,只有<>是 ...

  3. C#验证ip地址的代码

    如下的代码是关于C#验证ip地址的代码. public Boolean CheckIPValid(String strIP) { char chrFullStop = '.'; string[] ar ...

  4. 影响solr性能的一些因素(附使用经验)

    Solr本身的性能不错,但是在使用过程中,还是会遇到一些使用错误,或是没考虑到的地方:在出现瓶颈时,可以首先考虑哪些点呢?下面就来看一下Solr官方的总结,个人觉得总结的很好.SOLR+LUCENE的 ...

  5. 如何简单理解js中this的指向

    前序 每个人学js都会被this指向这个东西搞得很蒙,那就是this的指向问题.首先,我们要明白 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上thi ...

  6. java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化

    异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 ...

  7. [python,2018-06-25] 高德纳箭号表示法

    概念 高德纳箭号表示法是种用来表示很大的整数的方法,由高德纳于1976年设计.它的意念来自幂是重复的乘法,乘法是重复的加法. 定义 计算 一个箭头 2↑3=2×2×2=8 2↑4=2×2×2×2=16 ...

  8. How does the compilation and linking process work?

    The compilation of a C++ program involves three steps: Preprocessing: the preprocessor takes a C++ s ...

  9. [UnityShader基础]07.MaterialPropertyDrawer

    参考链接: https://blog.csdn.net/e295166319/article/details/60141677 https://docs.unity3d.com/ScriptRefer ...

  10. python 匿名函数&内置函数

    匿名函数:为了解决那些功能很简单的需求而设计的一句话函数怎么定义匿名函数: cal = lambda x : x*x # cal是函数名,lambda是定义匿名函数的关键字 冒号前面的额x是参数即函数 ...