为django平台生成模拟用户,建立用户组,并将用户加入组
书接上篇BLOG。
当我们可以用manage.py自定义命令来生成模拟数据时,
我们面对的就是如何操作ORM的问题了。
这两天,我为我们的内部系统的所有数据表,都生成了模拟数据。
有几个心得,记录于此。
一,将命令拆分
因为一个fake_command文件太大了,所以我们要将函数放在不同的文件里,便于管理。
- from django.core.management.base import BaseCommand
- from .fake_user import fake_user_data
- class Command(BaseCommand):
- help = 'It is a fake command, Import init data for test'
- def handle(self, *args, **options):
- self.stdout.write(self.style.SUCCESS('begin fake data'))
- fake_user_data()
- self.stdout.write(self.style.SUCCESS("end fake data"))
二,生成模拟用户,建立用户组,并将用户加入组
这时要注意,django orm里创建用户,用的是create_user及create_superuser方法。
而将用户加入用户组,则最好用下面的admin_group.user_set.set(admin_users)操作。
- from django.contrib.auth.models import User, Group
- def fake_user_data():
- User.objects.all().delete()
- Group.objects.all().delete()
- print('delete all user and group data')
- User.objects.create_user(username='Dylan', password="password")
- User.objects.create_user(username='Tyler', password="password")
- User.objects.create_user(username='Kyle', password="password")
- User.objects.create_user(username='Dakota', password="password")
- User.objects.create_user(username='Marcus', password="password")
- User.objects.create_user(username='Samantha', password="password")
- User.objects.create_user(username='Kayla', password="password")
- User.objects.create_user(username='Sydney', password="password")
- User.objects.create_user(username='Courtney', password="password")
- User.objects.create_user(username='Mariah', password="password")
- User.objects.create_user(username='tom', password="password")
- User.objects.create_user(username='mary', password="password")
- admin = User.objects.create_superuser('admin', 'admin@demon.com', 'xxx')
- root = User.objects.create_superuser('root', 'root@demon.com', 'xxx')
- kevin = User.objects.create_superuser('kevin', 'kevin@abc.com', 'xxx')
- admin_group = Group.objects.create(name='admin')
- Group.objects.create(name='test')
- Group.objects.create(name='dev')
- Group.objects.create(name='operate')
- admin_users = [admin, root, kevin]
- admin_group.user_set.set(admin_users)
- print('create all user and group data')
为django平台生成模拟用户,建立用户组,并将用户加入组的更多相关文章
- Linux系列教程(十五)——Linux用户和用户组管理之用户管理命令
上篇博客我们介绍了用户管理的相关配置文件,包括用户信息文件/etc/passwd,用户密码文件/etc/shadow:然后介绍了用户组信息文件/etc/group,用户组密码文件/etc/gshado ...
- Linux 新建用户、用户组,给用户分配权限(chown、useradd、groupadd、userdel、usermod、passwd、groupdel)
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- Linux 新建用户、用户组,给用户分配权限
注:内容来自网络 Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对 ...
- Linux系统的用户和用户组管理
一.用户账户管理 Linux/Unix是一个用户.多任务的操作系统:在讲Linux账号及账户组管理之前,先简单了解一下多用户.多任务操作系统的基本概念. Linux的单用户多任务 在Linux下,当你 ...
- linux系统用户以及用户组管理
本系列的博客来自于:http://www.92csz.com/study/linux/ 在此,感谢原作者提供的入门知识 这个系列的博客的目的在于将比较常用的liunx命令从作者的文章中摘录下来,供自己 ...
- Linux 用户和用户组操作
[认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- 数据库和Django model 生成和反向生成
Django 脚本生成数据表 建立映射关系 如果询问时区时间,选1 然后输入timezone.now() python manage.py makemigrations (如果有子应用的话子应用名称填 ...
- Linux 的基本操作(系统用户及用户组的管理)
[认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...
随机推荐
- ubuntu thrift
1.下载 http://www.apache.org/dyn/closer.cgi?path=/thrift/0.9.2/thrift-0.9.2.tar.gz 2.解压 tar -xvf thrif ...
- P2657 [SCOI2009]windy数
P2657 [SCOI2009]windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B ...
- 转:AutoLayout中的Content Hugging 和 Content Compression Resistance
OS6中引入了AutoLayout,极大的方便了UI元素的布局,现在已经过去一年了,并且大部分设备的系统也已经升级到了iOS6,是时候要使用此项技术了. 在AutoLayout的学习中有两个概念官方文 ...
- 判断android是否是debug
1.使用BuildConfig.DEBUG,这个在住modul里面是有效的,但是在有依赖库里面使用就会一直返回false,可以通过下面的方法解决:在library的build.gradle中添加以下代 ...
- core EFCore 开始尝试
准备工作: 工程:core + console 引用包: Install-Package Microsoft.EntityFrameworkCore Install-Package Microsoft ...
- python学习笔记2--list
一.list操作 list=['xiaohei','xiaobai','xiaohong']#定义一个数组 name=[]#定义一个空数组 #查 #下标是从0开始 print(list[1]) #-1 ...
- python json dumps loads
请看以上图片可知 1. python requests里面返回的是json 字符串, 说白了是字符串.不能直接取里面对应的值. 2. 取值的话,需要把json字符串转换成字典, 用json.loads ...
- 基本控件文档-UISegment属性
CHENYILONG Blog 基本控件文档-UISegment属性 Fullscreen UISegment属性技术博客http://www.cnblogs.com/ChenYilong/ 新浪 ...
- C语言入门教程-(4)常量和变量
1.常量和变量的概念 程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量.常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错. 2.常量和变量的命名规范 在介绍常量和 ...
- [转]google gflags 库完全使用
简单介绍 gflags 是 google 开源的用于处理命令行参数的项目. 安装编译 项目主页:gflags ➜ ~ git clone https://github.com/gflags/gflag ...