详解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 (1)
Oct 31 Python
详细介绍Python语言中的按位运算符
Nov 26 Python
基于Python的身份证号码自动生成程序
Aug 15 Python
python实现字符串和日期相互转换的方法
May 13 Python
python实现梯度下降算法
Mar 24 Python
解决Django加载静态资源失败的问题
Jul 28 Python
使用python 将图片复制到系统剪贴中
Dec 13 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
Python对wav文件的重采样实例
Feb 25 Python
Python读入mnist二进制图像文件并显示实例
Apr 24 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
selenium与xpath之获取指定位置的元素的实现
Jan 26 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
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
php 判断IP为有效IP地址的方法
2018/01/28 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
js几个验证函数代码
2010/03/25 Javascript
jQuery.ajax 用户登录验证代码
2010/10/29 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
vue之数据交互实例代码
2017/06/20 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
用Python进行TCP网络编程的教程
2015/04/29 Python
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
2020/11/20 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
"引用"与指针的区别是什么
2016/09/07 面试题
酒店副总岗位职责
2013/12/24 职场文书
单身联谊活动方案
2014/01/29 职场文书
服装促销活动方案
2014/02/23 职场文书
2014年十一国庆向国旗敬礼寄语
2014/04/11 职场文书
社区健康教育工作方案
2014/06/03 职场文书
党员个人党性分析材料
2014/12/18 职场文书
邀请函样本
2015/02/02 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Python帮你解决手机qq微信内存占用太多问题
2022/02/15 Python