Django create_user with is_active=False
- 下面的内容来自官方文档is_active
-
布尔值。指示用户的账号是否激活。我们建议把这个标记设置为False 来代替删除账号;这样的话,如果你的应用和User 之间有外键关联,外键就不会失效。
它不是用来控制用户是否能够登录。认证的后端没有要求检查is_active 标记,而且默认的后端不会检查。如果你想在is_active 为False 时拒绝用户登录,你需要在你自己的视图或自定义的认证后端中作检查。但是,默认的login() 视图使用的AuthenticationForm 却会 作这个检查,正如在Django 的Admin 站点中所做的权限检查方法如has_perm() 和认证一样。对于未激活的用户,所有这些函数/方法都返回False。
这里要说的就是将is_active设置为False,来阻止刚 注册的用法登陆
password = password1user_profile = UserProfiles()user_profile.username = user_nameuser_profile.email = user_nameuser_profile.is_active = Falseuser_profile.password = make_password(password)user_profile.save()
这里是第一种比较笨办法中的一段代码: 简单粗暴,直接实例化一个对象将其is_active设置为False
但是Django自带的auth模块中有更简单的办法, create_user
看下面源码:
def create_user(self, email, password=None, **extra_fields):is_staff = extra_fields.pop('is_staff', False)return self._create_user(email=email, password=password, is_staff=is_staff, is_superuser=False,**extra_fields)
很显然, 常见的字段只有email, password, is_staff, is_supersuer etc. 但是还有一个**extra_fields,
关键就在这个extra_fields中,它可以指定其它所有的字段的值.
下面对上面笨办法的一个补充:
UserProfiles.objects.create_user(username=user_name, password=password1, is_active=False)
这里的UserProfiles 和上面的UserProfiles都是自定义的继承自User的Model,如果你没有重写User,这里需要先导入User
from django.contrib.auth.models import UserUser.objects.create_user(username=user_name, password=password1, is_active=False) # 并改成这样
同样的道理,其它字段也可以自己指定.
转载于:https://www.cnblogs.com/Andy963/p/8551458.html
Django create_user with is_active=False相关推荐
- ajax 返回flase,Django request.is_ajax返回false
小编典典 我不知道你怎么了 我测试并取得了良好的消息:This is ajax.我的代码: urls.py url(r'^$', 'myapp.views.home', name='home'), u ...
- Django框架(十八)—— auth框架:用户登录、注册、认证
auth模块 一.什么是author模块 Auth模块是Django自带的用户认证模块,可以实现包括用户注册.用户登录.用户认证.注销.修改密码等功能.默认使用 auth_user 表来存储用户数据. ...
- Django(part48)--用户认证系统
学习笔记,仅供参考 文章目录 用户认证系统 User模型类 auth基本模型操作 创建用户 删除用户 修改密码 检查密码是否正确 用户认证系统 Django自带一个用户认证系统,它处理用户账号.组.权 ...
- 学一点django基础
学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...
- 摘抄Django项目(一)
果生鲜项目介绍 1.商业模式说明 2.开发流程介绍 3.项目需求分析 4.项目架构分析 5.数据库设计 6.模型类说明 7.创建dailyfresh项目 8.展示注册页面 9.视图函数的get和pos ...
- Django项目:极致果蔬(一)
作为一个Python的Web项目,其整体的开发流程大致如下: 在这个项目中,我们划分为4个模块,分别是用户模块.商品模块.购物车模块和订单模块. 对于整体项目的架构可分为3块,分别是前端开发.后台开发 ...
- django 验证和授权系统
django 验证和授权系统 验证和授权概述 使用授权系统 INSTALLED_APPS 中间件 User模型 字段 User模型的基本用法 创建用户 创建超级用户 修改密码 登录验证: 扩展用户模型 ...
- Django==2.2学习笔记,ubantu
安装 sudo pip3 install django==2.2.12 项目结构 创建项目文件 django-admin startproject config . # 创建一个config配置文件和 ...
- 智慧校园比赛系统-Python+Django
作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家 Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-Python-002 1.项目说明 项目名称 ...
最新文章
- 函数和常用模块【day04】: 总结(十二)
- 我们编写的C代码是怎样跑起来的?
- uva-10602-贪心
- 源码群友问:你这么多项目是怎么进行技术选型的?
- Java多线程(7)--线程池创建线程
- 前端学习(3142):react-hello-react之父组件render
- 作者:​王宁(1979-),男,厦门华厦学院副教授、高级工程师。
- Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用 《转》...
- mysql分组后再分组_全网最全的mysql分组后取topN的解答
- cbitmap 从内存中加载jpg_Pytorch数据加载的分析
- mysql datetime为空不显示_将null和格式不正确的datetime值导入datetime列MySQL
- 实现74HC151的8选1数据选择器功能以及用两片74HC151组成一个16选1数据选择器
- 中科院阿里云联合发布11比特云接入超导量子计算服务
- vmware vsphere安装与使用
- [转帖]Photoshop鼻青脸肿效果的照片恶搞教程
- Linux操作学习笔记(CentOS7)
- three.js法线贴图与凹凸贴图的对比
- ST7703 LCM显示屏调试--基于MT6765
- 计算机音乐学院,乐与录音艺术学院学生在中国大学生计算机设计大赛(计算机音乐创作类)中喜获佳绩...
- 中国人的英文名和外国人的中文名
热门文章
- PWA(Progressive Web App)入门系列:(四)Promise
- Fedora12上编译安装gdb-7.2
- 前端学习(3208):react中的事件绑定
- react学习(20)---发送参数
- 前端学习(3100):vue+element今日头条管理-react简介
- [html] 如何扩大CheckBox点击区域
- [css] 写出你知道的CSS水平和垂直居中的方法
- [css] css中最常用的字体有哪些?你是怎么选择字体的?
- 前端学习(2760):image基本使用
- 前端学习(2730):重读vue电商网站40之使用vue-table-with-tree-grid