为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 ...
随机推荐
- Docker Macvlan
参考博客:https://blog.csdn.net/daye5465/article/details/77412619 一.Macvlan 交换机的vlan是根据端口来划分的,如果一个PC接入vla ...
- bzoj千题计划149:bzoj2527: [Poi2011]Meteors
http://www.lydsy.com/JudgeOnline/problem.php?id=2527 整体二分 区间加,单点查,树状数组维护差分序列 注意 累积可能会爆long long,所以一满 ...
- codevs 1080 线段树练习 CDQ分治
codevs 1080 线段树练习 http://codevs.cn/problem/1080/ 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 一行N个 ...
- Storm实现实时大数据分析
当今世界,公司的日常运营经常会生成TB级别的数据.数据来源囊括了互联网装置可以捕获的任何类型数据,网站.社交媒体.交易型商业数据以及其它商业环境中创建的数据.考虑到数据的生成量,实时处理成为了许多机构 ...
- yii验证系统学习记录,基于yiicms(一)写的太长了,再写一篇(二)
项目地址:https://gitee.com/templi/yiicms 感谢七觞酒大神的付出,和免费分享.当然也感谢yii2的开发团队们. 项目已经安全完毕,不知道后台密码,这种背景下,后台无法进去 ...
- 数位DP入门(A - 不要62 HDU - 2089 &&B - Bomb HDU - 3555 )
题目链接:https://cn.vjudge.net/contest/278036#problem/A 具体思路:对于给定的数,我们按照位数进行运算,枚举每一位上可能的数,在枚举的时候需要注意几个条件 ...
- [转]closed-form solution (闭合解/解析解)和数值解的理解
参考整理自:http://hi.baidu.com/cjb366/item/7290773b2d2eb9f2a9842873 closed-form solution :一般翻译为闭合解/解析解.这一 ...
- 《廖雪峰Git教程》学习笔记
原文链接 一.创建版本库 ①初始化一个Git仓库:git init ②添加文件到Git仓库:1.git add<file> ; 2.git commit 二.时光机穿梭 ①查看工作区状态 ...
- rollup&&cube
group by 擴展 rollup&&cube --按job分組計算不同job的匯總工資 SELECT job, SUM (sal) FROM emp GROUP BY ...
- Linux硬盘镜像获取与还原(dd、AccessData FTK Imager)
1.硬盘镜像获取工具:dd dd是Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 1.1 本地取数据 查看磁盘及分区 # fdisk - ...