详解python如何在django中为用户模型添加自定义权限


Posted in Python onOctober 15, 2018

django自带的认证系统能够很好的实现如登录、登出、创建用户、创建超级用户、修改密码等复杂操作,并且实现了用户组、组权限、用户权限等复杂结构,使用自带的认证系统就能帮助我们实现自定义的权限系统达到权限控制的目的。

在django中默认情况下,syncdb运行时安装了django.contrib.auth,它会为每个模型创建默认权限,如foo.can_change,foo.can_delete和foo.can_add.要向模型添加自定义权限,可以添加类Meta:在模型下,并在其中定义权限,如此处所述

我的问题是,如果我要为用户模型添加自定义权限,该怎么办?像foo.can_view.我可以用下面的代码片段来实现,

ct = ContentType.objects.get(app_label='auth', model='user')
perm = Permission.objects.create(codename='can_view', name='Can View Users', 
                 content_type=ct)
perm.save()

但是我想要一些可以很好地与syncdb一起玩的东西,例如我的自定义模型下的Meta类.我应该在类Meta中有这些:在UserProfile下,因为这是扩展用户模型的方式.但是是否正确的方式呢?不会把它绑定到UserProfile模型?

你可以这样做:

在Django应用的__init__.py中添加:

from django.db.models.signals import post_syncdb
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth import models as auth_models
from django.contrib.auth.models import Permission

# custom user related permissions
def add_user_permissions(sender, **kwargs):
  ct = ContentType.objects.get(app_label='auth', model='user')
  perm, created = Permission.objects.get_or_create(codename='can_view', name='Can View Users', content_type=ct)
post_syncdb.connect(add_user_permissions, sender=auth_models)

原文地址:http://stackoverflow.com/questions/7724265/how-to-add-custom-permission-to-the-user-model-in-django

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现文本去重且不打乱原本顺序
Jan 26 Python
实现python版本的按任意键继续/退出
Sep 26 Python
基于Python函数的作用域规则和闭包(详解)
Nov 29 Python
pandas series序列转化为星期几的实例
Apr 11 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
django迁移数据库错误问题解决
Jul 29 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
python 实现任务管理清单案例
Apr 25 Python
Python多线程thread及模块使用实例
Apr 28 Python
浅析Python 多行匹配模式
Jul 24 Python
python使用numpy中的size()函数实例用法详解
Jan 29 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 #Python
Python 实现异步调用函数的示例讲解
Oct 14 #Python
python 异或加密字符串的实例
Oct 14 #Python
python实现换位加密算法的示例
Oct 14 #Python
浅析Python 3 字符串中的 STR 和 Bytes 有什么区别
Oct 14 #Python
Python中实例化class的执行顺序示例详解
Oct 14 #Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 #Python
You might like
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
Javascript动态绑定事件的简单实现代码
2010/12/25 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
使用命令对象代替switch语句的写法示例
2015/02/28 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
Bootstrap响应式导航由768px变成992px的实现代码
2017/06/15 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
Javascript实现时间倒计时效果
2017/07/15 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
详解Vue源码学习之双向绑定
2019/04/10 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
python实现下载指定网址所有图片的方法
2015/08/08 Python
Python自动化测试Eclipse+Pydev 搭建开发环境
2016/08/15 Python
tensorflow 1.0用CNN进行图像分类
2018/04/15 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Django模板语言 Tags使用详解
2019/09/09 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
配件采购员岗位职责
2013/12/03 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
代办委托书怎样写
2014/04/08 职场文书
人大调研汇报材料
2014/08/14 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2014小学二年级班主任工作总结
2014/12/05 职场文书
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB