为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 ...
随机推荐
- Git6:Git简单远程仓库部署
目录 一.服务端操作 二.客户端操作 一.服务端操作 1.安装git yum install -y git 2.创建git用户 useradd git 3.创建客户端登录证书 收集所有需要登录的用户的 ...
- Git4:Git标签
目录 简介 新建标签 查看标签详细信息 切换标签 后期添加标签 将标签推送到远端仓库 简介 Git可以对某一时间点上的版本打上标签.人们在发布某个软件版本(比如 v1.0 等等)的时候,经常这么做.本 ...
- 「Vue」v-html生成的图片大小无法调整的解决办法
问题: v-html生成的图片调整大小属性没用<div class="content" v-html="pdinfo.content"></d ...
- [LeetCode] 398. Random Pick Index ☆☆☆
Given an array of integers with possible duplicates, randomly output the index of a given target num ...
- 戴尔PowerEdge R430 机架式服务器 安装ubuntu server 14.04.1 LTS 64 位
硬件配置: 服务编号:5Z04X72 软件配置 1.Ubuntu 系统下载地址: https://certification.ubuntu.com/certification/hardware/201 ...
- 单进程单线程的Redis如何能够高并发
redis快的原因: 1.纯内存操作2.异步非阻塞 IO 参考文档: (1)http://yaocoder.blog.51cto.com/2668309/888374 (2)http://www.cn ...
- jdk1.8.0_45源码解读——ArrayList的实现
jdk1.8.0_45源码解读——ArrayList的实现 一.ArrayList概述 ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素. ...
- [转载]HTML5开发入门经典教程和案例合集(含视频教程)
http://www.iteye.com/topic/1132555 HTML5作为下一代网页语言,对Web开发者而言,是一门必修课.本文档收集了多个HTML5经典技术文档(HTML5入门资料.经典) ...
- JS日历,可获得指定日期周数及星期几
需求来自一个朋友:编写一个简易日历.在文本框中输入要查找的日期,程序可以计算出这一天处在该年份的第几周,并且能判断出这一天到底是星期几. 应为要有交互,选择了Js来实现,也算是 结对编程 的初试吧. ...
- css_清除浮动的4种方式
浮动布局和定位布局为css中布局的常用的两种布局方式,而且兼容性会比较好.随着flex的流行,以后会是主流,新的东西好用,兼容不太好.IE10以下不兼容flex布局. float布局会脱离文档流,对页 ...