书接上篇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')

最新文章

  1. centos环境搭建
  2. web工程关于500错误
  3. java--UDP屏幕广播代码
  4. 深入理解Java虚拟机(一)、Java内存区域与内存溢出异常
  5. Caffe学习系列(2):数据层及参数
  6. 【云计算】ubuntu下docker安装配置指南
  7. JQuery源码之“对象的结构解析”
  8. hdu3072 强连通+最小树形图
  9. Oracle用户密码过期问题解决
  10. vim 编辑器笔记
  11. UIView之常用方法
  12. NavMeshAgent 动态加载障碍物
  13. Javascript 方法apply和call的差别
  14. C++类型转化:static_cast,reinterpret_cast,dynamic_cast,const_cast
  15. 【Spring】6、注解大全
  16. windows----------Windows10 远程桌面连接失败,报CredSSP加密oracle修正错误解决办法
  17. CentOS7 安装极点五笔输入法
  18. 使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求
  19. css实现布局
  20. HTTP Status 500 - Unable to create directory

热门文章

  1. linux命令总结dd命令详解
  2. python3中SSLError错误处理
  3. 使用 Collections 实现排序 sort方法 对List 实体类实现Comparable类 示例
  4. 如何创建一个 Lua 模块
  5. 动态规划:树形DP-选课(树形背包)
  6. 判断android是否是debug
  7. -webkit-css
  8. IE6 下 DD_belatedPNG 引发的血案
  9. Macaca(一) - 环境配置
  10. thinkphp报错Call to undefined method app\index\controller\Index::fetch()