Django create_user with is_active=False
下面的内容来自官方文档is_active

布尔值。指示用户的账号是否激活。我们建议把这个标记设置为False 来代替删除账号;这样的话,如果你的应用和User 之间有外键关联,外键就不会失效。

它不是用来控制用户是否能够登录。认证的后端没有要求检查is_active 标记,而且默认的后端不会检查。如果你想在is_activeFalse 时拒绝用户登录,你需要在你自己的视图或自定义的认证后端中作检查。但是,默认的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) # 并改成这样

同样的道理,其它字段也可以自己指定.

posted on 2018-03-12 20:04 Andy_963 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Andy963/p/8551458.html

Django create_user with is_active=False相关推荐

  1. ajax 返回flase,Django request.is_ajax返回false

    小编典典 我不知道你怎么了 我测试并取得了良好的消息:This is ajax.我的代码: urls.py url(r'^$', 'myapp.views.home', name='home'), u ...

  2. Django框架(十八)—— auth框架:用户登录、注册、认证

    auth模块 一.什么是author模块 Auth模块是Django自带的用户认证模块,可以实现包括用户注册.用户登录.用户认证.注销.修改密码等功能.默认使用 auth_user 表来存储用户数据. ...

  3. Django(part48)--用户认证系统

    学习笔记,仅供参考 文章目录 用户认证系统 User模型类 auth基本模型操作 创建用户 删除用户 修改密码 检查密码是否正确 用户认证系统 Django自带一个用户认证系统,它处理用户账号.组.权 ...

  4. 学一点django基础

    学一点Django基础 目录 文章目录 目录 一.Django框架的介绍 Django的安装 Django框架开发 创建项目的指令 Django项目的目录结构 URL 介绍 视图函数(view) Dj ...

  5. 摘抄Django项目(一)

    果生鲜项目介绍 1.商业模式说明 2.开发流程介绍 3.项目需求分析 4.项目架构分析 5.数据库设计 6.模型类说明 7.创建dailyfresh项目 8.展示注册页面 9.视图函数的get和pos ...

  6. Django项目:极致果蔬(一)

    作为一个Python的Web项目,其整体的开发流程大致如下: 在这个项目中,我们划分为4个模块,分别是用户模块.商品模块.购物车模块和订单模块. 对于整体项目的架构可分为3块,分别是前端开发.后台开发 ...

  7. django 验证和授权系统

    django 验证和授权系统 验证和授权概述 使用授权系统 INSTALLED_APPS 中间件 User模型 字段 User模型的基本用法 创建用户 创建超级用户 修改密码 登录验证: 扩展用户模型 ...

  8. Django==2.2学习笔记,ubantu

    安装 sudo pip3 install django==2.2.12 项目结构 创建项目文件 django-admin startproject config . # 创建一个config配置文件和 ...

  9. 智慧校园比赛系统-Python+Django

    作者主页:编程指南针 简介:Java领域优质创作者.CSDN博客专家  Java项目.简历模板.学习资料.面试题库.技术互助 文末获取源码 项目编号:BS-Python-002 1.项目说明 项目名称 ...

最新文章

  1. 函数和常用模块【day04】: 总结(十二)
  2. 我们编写的C代码是怎样跑起来的?
  3. uva-10602-贪心
  4. 源码群友问:你这么多项目是怎么进行技术选型的?
  5. Java多线程(7)--线程池创建线程
  6. 前端学习(3142):react-hello-react之父组件render
  7. 作者:​王宁(1979-),男,厦门华厦学院副教授、高级工程师。
  8. Struts2 用 s:if test 判断属性和字符串相等时 注意双引号和单引号的使用 《转》...
  9. mysql分组后再分组_全网最全的mysql分组后取topN的解答
  10. cbitmap 从内存中加载jpg_Pytorch数据加载的分析
  11. mysql datetime为空不显示_将null和格式不正确的datetime值导入datetime列MySQL
  12. 实现74HC151的8选1数据选择器功能以及用两片74HC151组成一个16选1数据选择器
  13. 中科院阿里云联合发布11比特云接入超导量子计算服务
  14. vmware vsphere安装与使用
  15. [转帖]Photoshop鼻青脸肿效果的照片恶搞教程
  16. Linux操作学习笔记(CentOS7)
  17. three.js法线贴图与凹凸贴图的对比
  18. ST7703 LCM显示屏调试--基于MT6765
  19. 计算机音乐学院,乐与录音艺术学院学生在中国大学生计算机设计大赛(计算机音乐创作类)中喜获佳绩...
  20. 中国人的英文名和外国人的中文名

热门文章

  1. PWA(Progressive Web App)入门系列:(四)Promise
  2. Fedora12上编译安装gdb-7.2
  3. 前端学习(3208):react中的事件绑定
  4. react学习(20)---发送参数
  5. 前端学习(3100):vue+element今日头条管理-react简介
  6. [html] 如何扩大CheckBox点击区域
  7. [css] 写出你知道的CSS水平和垂直居中的方法
  8. [css] css中最常用的字体有哪些?你是怎么选择字体的?
  9. 前端学习(2760):image基本使用
  10. 前端学习(2730):重读vue电商网站40之使用vue-table-with-tree-grid