crm开发之用户重置密码
重置 密码这这功能。 我是没有在,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开发之用户重置密码的更多相关文章
- dede 5.7 任意用户重置密码前台
返回了重置的链接,还要把&删除了,就可以重置密码了 结果只能改test的密码,进去过后,这个居然是admin的密码,有点头大,感觉这样就没有意思了 我是直接上传的一句话,用菜刀连才有乐趣 ...
- crm开发之用户ModelForm定制和密码加密
写了这么多的定制 功能.终于可以定制一下了!因为是 stark 和 rbac 两个组建. 一起使用. 所以在这里,再记录一下.需要注意的点: 先放出 目录结构: 先从 stark 开始.使用star ...
- ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题
最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入root用户密码,在网上找了一天解决方案,试图修改root用户下的登入密码,但是网上的帖子都不凑效,最后终于改成功了,因此记下来以供有同 ...
- [PHP] ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题
reference to : http://www.cnblogs.com/roadofstudy/p/7446690.html 最近在ubuntu系统上安装了MySQL,但是安装时没有提示输入roo ...
- CentOS中对MySql的root用户重置密码
由于一般的修改ini文件来完成无密码登录数据库容易造成较大风险,所以使用修改启动服务参数的方式来更新user表,达到无密码登陆的目的. 1.关闭系统下运行的mysql服务 (1)杀掉进程号达到关闭目的 ...
- Maven-007-Nexus 用户添加,用户角色分配,用户修改密码,管理员重置用户密码
配置好 maven nexus 私服后,默认的用户可通过查看[Users]查看当前私服中所存在的用户,如下图所示:
- Ubuntu 16.04 重置密码
忘记了你的Ubuntu用户密码,登录不了系统:不要紧,在Ubuntu上重置密码是很简单的,即使你忘记了用户名. #1 进入Recovery Mode Recovery Mode即恢复模式:在Grub启 ...
- [ Laravel 5.6 文档 ] 安全系列 —— 重置密码
http://laravelacademy.org/post/8929.html 简介 想要快速实现该功能?只需要在新安装的 Laravel 应用下运行 php artisan make:auth(如 ...
- ArcGIS Server Manager 重置密码
重置忘记的密码 ArcGIS 10.5 (Windows) | 其他版本 根据以下说明为标识存储中的用户或主站点管理员帐户重置密码. 为标识存储中的用户重置密码 可按照以下步骤为标识存储中的用户重置密 ...
随机推荐
- solr中Cache综述
一.概述 Solr查询的核心类就是SolrIndexSearcher,每个core通常在同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSear ...
- Odoo二次开发
Odoo 点击进入
- 小程序2-基本架构讲解(一)WXSS样式
项目里边生成了不同类型的文件: .json 后缀的 JSON 配置文件 .wxml 后缀的 WXML 模板文件 .wxss 后缀的 WXSS 样式文件 .js 后缀的 JS 脚本逻辑文件 WXSS 样 ...
- Revit 命令添加下拉框
在学习revit制作下拉框时,需要分为三个步骤: 1.创建一个面板(panel). RibbonPanel panel10 = application.CreateRibbonPanel(Global ...
- input file禁用手机本地文件选择,只允许拍照上传图片
<input type="file" accept="image/*" capture="camera"> 会有个问题,上传的图 ...
- 分布式 基本理论 BASE
比起CAP的生硬来, 我更加喜欢BASE.BASE 显得更加好理解.尽管BASE 这个名字本身有迎合语言习惯的恶臭味,为什么不是缩写为 BaSsEc 呢? 其实大部分系统是可以 同时 CAP 的, 因 ...
- 40_redux_counter应用_redux完善版本
项目结构: 代码: import React from 'react'; import ReactDOM from 'react-dom'; import store from './redux/st ...
- MySQL中链接查询inner join与left join使用
连接查询其实就是对两个表记录做笛卡尔乘积.如果不指定连接条件的话,则会对每行都做笛卡尔乘积,这样最后返回的结果树就会是两个表记录数的乘积:如果指定则,则仅对符合列条件的行进行笛卡尔乘积,并返回结果.在 ...
- BitmapData.threshold()方法
import flash.display.Bitmap; import flash.display.BitmapData; import flash.geom.Rectangle; import fl ...
- windows安装composer
Composer 是 PHP 的一个依赖管理工具(不是一个包管理器).它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们. 在windows下安装的方法 方法一:使用安装程序 这是将 Com ...