没有合适的资源?快使用搜索试试~ 我知道了~
权限 Django中内置了权限的功能。他的权限都是针对表或者说是模型级别的。比如对某个模型上的数据是否可以进行增删改查操作。他不能针对数据级别的,比如对某个表中的某条数据能否进行增删改查操作(如果要实现数据级别的,考虑使用django-guardian)。创建完一个模型后,针对这个模型默认就有四种权限,分别是增/删/改/查。可以在执行完migrate命令后,查看数据库中的auth_permission表中的所有权限。 字段: content_type_id:是一个外键,参考表是django_content_type这个表,django就是根据这个来找到某一个具体的模型的。 codename:
资源推荐
资源详情
资源评论
对对Django中的权限和分组管理实例讲解中的权限和分组管理实例讲解
权限权限
Django中内置了权限的功能。他的权限都是针对表或者说是模型级别的。比如对某个模型上的数据是否可以进行增删改查操
作。他不能针对数据级别的,比如对某个表中的某条数据能否进行增删改查操作(如果要实现数据级别的,考虑使用django-
guardian)。创建完一个模型后,针对这个模型默认就有四种权限,分别是增/删/改/查。可以在执行完migrate命令后,查看数
据库中的auth_permission表中的所有权限。
字段:字段:
content_type_id:是一个外键,参考表是django_content_type这个表,django就是根据这个来找到某一个具体的模型的。
codename: 表示权限的名字。
name: 对该权限的描述。
添加权限添加权限
通过定义模型添加权限:
如果我们想要增加新的权限,比如查看某个模型的权限,那么我们可以在定义模型的时候在Meta中定义好。
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.CharField(max_length=20)
class Meta:
permissions = [
('black_article','拉黑文章的权限'),
]
然后执行makemigrations和migrate命令,就添加好了这一条权限。我们可以数据库中的auth_permission表中看到我们添加的
这一条权限。
通过代码来添加权限。
权限都是django.contrib.auth.Permission的实例。这个模型包含三个字段,name、codename以及content_type,其中的
content_type表示这个permission是属于哪个app下的哪个models。
定义一个视图函数,然后写入代码:
from django.http import HttpResponse
from .models import Article
from django.contrib.auth.models import Permission,ContentType
# Create your views here.
def add_permission(request):
content_type = ContentType.objects.get_for_model(Article)
permission = Permission.objects.create(codename='white_article',name='将文章加入白名单',content_type=content_type)
return HttpResponse('权限创建成功')
然后执行这个视图函数,就能够添加这个权限了。
注意: name字段是不能有重复的,否则会报错。
用户与权限管理:用户与权限管理:
权限本身只是一个数据,必须和用户进行绑定,才能起到作用。User模型和权限之间的管理,可以通过以下几种方式来管
理:
1、myuser.user_permissions.set(permission_list):直接给定一个权限的列表。
2、myuser.user_permissions.add(permission,permission,…):一个个添加权限。这里就不能传入一个列表了,只能一个一个
的传入数据了。
3、myuser.user_permissions.remove(permission,permission,…):一个个删除权限。
4、myuser.user_permissions.clear():清除所有的权限。
资源评论
weixin_38559569
- 粉丝: 3
- 资源: 948
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- go语言基于gin框架开发开箱即用的后端api接口框架,集成了自动路由,接口合法验证,token验证,防止高频请求攻击,统一日志文件,简单易用的orm 做到下载即可开发业务接口,避免重复造轮.zip
- Web 开发全栈指南:从前端到后端的技术栈和学习路径
- go语言 上位开发脚手架.zip
- GoSuv是GO语言重写的类supervisor的一个进程管理程序,在github.com,codeskyblue,gosuv基础上增加了环境变量的配置以及主机名称的配置等,并用rice封装对.zip
- jdk-17.0.11.tar.gz
- 全球电子制造服务(EMS)市场报告:未来几年年复合增长率CAGR为4.6%
- 全国地区表,省市区多层级关系,拼音,长途区号,邮编,经度,纬度,简称,全称
- goefun是用于golang的中文函数库,它提供了强大且易于使用的函数,它完整封装了易语言核心支持库的所有功能,同时提供简单易用的函数 .zip
- Go 语言实现的简易 Redis(Simple Remote Dictionary Server by Golang),主要包括TCP 服务器、协议解析器、内存数据库、持久化、集群.zip
- Go 语言实现 简易用法.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功