详解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之hello world
May 21 Python
python的keyword模块用法实例分析
Jun 30 Python
Python读大数据txt
Mar 28 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
Python numpy实现数组合并实例(vstack,hstack)
Jan 09 Python
Python通用循环的构造方法实例分析
Dec 19 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python(PyS60)实现简单语音整点报时
Nov 18 Python
浅谈ROC曲线的最佳阈值如何选取
Feb 28 Python
python 实现两个线程交替执行
May 02 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
python获取本周、上周、本月、上月及本季的时间代码实例
Sep 08 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面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
php文本转图片自动换行的方法
2013/03/13 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
javascript操作cookie的文章(设置,删除cookies)
2010/04/01 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
webpack中引用jquery的简单实现
2016/06/08 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
Django自定义分页与bootstrap分页结合
2021/02/22 Python
Python模拟百度自动输入搜索功能的实例
2019/02/14 Python
python自动化之Ansible的安装教程
2019/06/13 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Python 3.8 新功能大揭秘【新手必学】
2020/02/05 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
关于母亲节的感言
2014/02/04 职场文书
学雷锋标语
2014/06/25 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
转变工作作风心得体会
2016/01/23 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL