note:  应该是这样的结构,并且commands名字是固定的。 执行: python manage.py  initgroup

initgroup.py

# -*- coding: utf-8 -*-
from django.core.management import BaseCommand
from django.contrib.auth.models import Group, Permission, ContentType from apps.news.models import News, NewsCategory, Comment
from apps.cms.models import Banners
from apps.course.models import Course, CourseOrder, Category class Command(BaseCommand):
def handle(self, *args, **options):
# 编辑组/财务组/管理员组/超级管理员
# python manage.py initgroup
# 编辑人员权限:编辑文章/轮播图/付费资讯/课程 # 创建编辑组
# model对应的app名字 !!!get_for_model not is get_for_models
edit_content_types = [
ContentType.objects.get_for_model(News),
ContentType.objects.get_for_model(NewsCategory),
ContentType.objects.get_for_model(Banners),
ContentType.objects.get_for_model(Comment),
ContentType.objects.get_for_model(Course),
ContentType.objects.get_for_model(Category),
]
# 添加权限
# 查找出这些models需要的权限
edit_permissions = Permission.objects.filter(content_type__in=edit_content_types) # 创建权限组的名字
editGroup = Group.objects.create(name='编辑')
# 添加权限
editGroup.permissions.set(edit_permissions) # 2.创建财务组
finance_content_types = [
ContentType.objects.get_for_models(CourseOrder)
]
finance_permissions = Permission.objects.filter(content_type__in=finance_content_types)
finance_group = Group.objects.create(name='财务组')
finance_group.permissions.set(finance_permissions) # 3.创建管理员,拥有财务和编辑权限
admin_permissions = edit_permissions.union(finance_permissions)
admin_group = Group.objects.create(name='管理员')
admin_group.permissions.set(admin_permissions) self.stdout.write(self.style.SUCCESS("初始化分组成功"))

权限分组完成,权限验证场景: https://www.cnblogs.com/tangpg/p/9431620.html

django-BaseCommand自带的权限分组的更多相关文章

  1. centos 带S权限的二进制

    早上写的一个用find查找带S权限的,感觉不记一下可惜了. [root@iZ28wg1kditZ ~]# find / -type f -exec ls -al {} \;|awk 'BEGIN {p ...

  2. 配置带用户权限的docker registry v2

    v1版本的docker registry用nginx配置,v2版本的用nginx有些问题,客户端总是会请求到v1/下面去, 以下从 http://blog.csdn.net/felix_yujing/ ...

  3. Django Rest Framework(认证、权限、限制访问频率)

    阅读原文Django Rest Framework(认证.权限.限制访问频率) django_rest_framework doc django_redis cache doc

  4. Android权限申请完全解析(一):Android自带的权限申请

    1.为什么要权限申请 6.0以上就需要了,别问为什么.(不是重点,自行搜索) 2.如何进行权限申请 Android自带的权限申请 EasyPermission权限申请 Ps:EasyPermissio ...

  5. Django路由系统---url无命名分组

    django重点之url无命名分组[参数有顺序要求] settigs.py:增加STATICFILES_DIRS静态资源路径配置,名称为创建的文件夹名称 'DIRS': [os.path.join(B ...

  6. Django源码分析之权限系统_擒贼先擒王

    乍见 Django内置的权限系统已经很完善了,加上django-guardian提供的功能,基本上能满足大部分的权限需求.暂且不说django-guardian,我们先来看下Django内置的权限系统 ...

  7. django上课笔记2-视图CBV-ORM补充-Django的自带分页-Django的自定义分页

    一.视图CBV 1.urls url(r'^login.html$', views.Login.as_view()), 2.views from django.views import View cl ...

  8. Django框架08 /聚合查询、分组、F/Q查询、原生sql相关

    Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 目录 Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 1. 聚合查询 2. 分组 3. F查询和Q查询 4. o ...

  9. Django之自带的认证系统 auth模块

    01-Django自带的用户认证 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Dj ...

随机推荐

  1. Spark代码Eclipse远程调试

    我们在编写Spark Application或者是阅读源码的时候,我们很想知道代码的运行情况,比如参数设置的是否正确等等.用Logging方式来调试是一个可以选择的方式,但是,logging方式调试代 ...

  2. Spark任务提交jar包依赖解决方案

    转载自:http://blog.csdn.net/wzq294328238/article/details/48054525                    通常我们将Spark任务编写后打包成 ...

  3. 多线程中的Lock小结

    出处:http://www.cnblogs.com/DarrenChan/p/6528578.html#undefined 1.lock和synchronized的区别 1)Lock不是Java语言内 ...

  4. C#实现Google S2算法

    S2其实是来自几何数学中的一个数学符号 S²,它表示的是单位球.S2 这个库其实是被设计用来解决球面上各种几何问题的.值得提的一点是,除去 golang 官方 repo 里面的 geo/s2 完成度目 ...

  5. MySQL Binlog解析

    https://yq.aliyun.com/articles/238364?spm=5176.8067842.tagmain.52.73PjU3 摘要: 概述 MySQL的安装可以参考:Linux(C ...

  6. Ubuntu 18.04 rc.local systemd设置

    ubuntu18.04不再使用initd管理系统,改用systemd. 然而systemd很难用,改变太大,跟之前的完全不同. 使用systemd设置开机启动为了像以前一样,在/etc/rc.loca ...

  7. java实现PC之间的udp数据单向传输

    本示例包括两个客户端UDPClient和MyServer.UDPClient发送数据到MyServer,MyServer负责接收数据.可传输文本.视频.音频.图片等. 最近我在学习这一块,写个例子. ...

  8. angular的组件通信

    参见这里   总结如下: @Input和@Ouptut 获取父实例,获取子实例 通过service共享数据 发送事件EventEmitter(个人喜欢angular-event-service) rx ...

  9. MySQL数据库解决乱码 latin1 转 gbk

    latin1 也是一种编码,但是有时候它不适合我们正常的使用,所以我需要把它转成gbk编码. 查询数据库编码 show variables like 'character%'; 修改配置文件 my.i ...

  10. jenkins+git 构建项目

    首先先参照了网上几篇文章 http://blog.csdn.net/kefengwang/article/details/54233584 https://www.liaoxuefeng.com/ar ...