2.4.4.3、Django用user表last_name字段做权限控制

这不是最好的方法!

数据库User表中因为是系统初始化的表,如果添加额外的字段需要修改django源文件,不利于移植,为避免带来其他问题,可以使用last_name字段做为权限控制,当然也可以用profile方法为user表添加新字段(对于user表示一对一关系,但不是在User表中),session在用户登录之后会一直存储user的信息,所以用user表中的字段在html中引用实现更简单一点(group可以在视图里使用)

如下图:

http://10.1.1.145:8000/admin/auth/user/ 里如下图:

在一个模板leftmenu.html中,可以根据姓氏(last_name)字段来控制显示什么菜单,用不同类型的账号登陆就会显示不同的导航菜单,如下代码:

<ul>
     <li><a href="{% url "logout_view" %}">注销,重新登录</a></li>
     <li><a href="{% url "test" %}">测试一下</a></li>
     {% if user.last_name == ‘1‘ %}
     <li><a href="http://www.baidu.com">leve1</a></li>
     <li><a href="www.baidu.com">用户类型1</a></li>
     {% endif %}
     {% if user.last_name == ‘2‘ %}
     <li><a href="http://www.baidu.com">leve2</a></li>
     <li><a href="www.baidu.com">用户类型2</a></li>
     {% endif %}
     {% if not user.is_superuser %}
     <li><a href="http://www.baidu.com">普通用户</a>
 <ul>
     <li><a href="http://www.baidu.com">普通用户测试</a></li>
</ul>

最后附上整理好的word版本百度网盘下载地址:http://pan.baidu.com/s/1mgkegYW

2.4.4.3、Django用user表last_name字段做权限控制

时间: 2024-11-07 01:20:19

2.4.4.3、Django用user表last_name字段做权限控制的相关文章

django 重写User表增加字段设置

models中: from django.contrib.auth.models import AbstractUser lass User(AbstractUser): mobile = models.CharField(max_length=11,unique=True,verbose_name='手机号') 并且在setting中进行 设置: AUTH_USER_MODEL = 'users.User' #应用表 + 表名 这样就可以给django认证的user表 增加字段 原文地址:ht

Django内置表单字段

字段 说明 BooleanField 复选框,如果字段带有required=True,复选框都被勾上 CharField 文本框,参数max_length 和 min_length分别设置输入长度 ChoiceField 下拉框,参数choices设置数据内容 TypedChoiceField 与ChoiceField类似,但比ChoiceField多出参数coerce和empty_value,分别代表强制转换数据类型和用于表示空值,默认为空字符串 DateField 文本框,具有时间格式的功能

django(权限、认证)系统——第三方组件实现Object级别权限控制

在我的系列blog<Django中内置的权限控制>中明确提及到,Django默认并没有提供对Object级别的权限控制,而只是在架构上留了口子.在这篇blog中,我们探讨一个简单流行的Django组件django-guardian来实现Object level permission. 安装配置django-guardian 首先需要安装django-guardian,一般我们喜欢用virtualenv创建一个虚拟环境: >>virtualenv --distribute venv

django中的权限控制

Django默认提供了权限控制,但只能对使用了其自带的登录认证的用户进行权限控制,说白了就是只能对存储在auth_user表中的用户进行权限控制,但不能对未登录过的用户进行权限控制.但如果通过集成LDAP认证后的用户,其用户也会被缓存到该表中,即变相实现了AD用户也能进行权限控制. 权限是auth 应用中定义的Permission类型:User与Permission是many-to-many的关系. Django对于每个模型类,自动增加add.change.delete三种权限,以便于权限控制.

[Python学习] Django 权限控制

本文为大家讲解 Django 框架里自带的权限模型,从理论到实战演练,带领大家了解 Django 里权限是怎么一回事. 主要内容 什么是权限管理? Web 权限 Django 权限机制 Django 的权限项 权限应用 Permission(一) Permission(二) User Permission 管理(一) User Permission 管理(二) Group Permission 管理 权限验证(一) 权限验证(二) 权限验证(三) 权限验证(四) 什么是权限管理 权限管理,一般指

Django创建数据表

Django中创建表, 用的django项目自带的sqlite数据库,创建完成后将表注册到jdango.admin,就可以在浏览器在管理了. 在django项目的models.py文件中: from django.db import models # Create your models here. class Author(models.Model): name = models.CharField(max_length=100) age = models.IntegerField(defau

Django--分页器(paginator)、Django的用户认证、Django的FORM表单

分页器(paginator) >>> from django.core.paginator import Paginator >>> objects = ['john', 'paul', 'george', 'ringo'] >>> p = Paginator(objects, 2) >>> p.count #数据总数 4 >>> p.num_pages #总页数 2 >>> type(p.page

django orm 关联表查询

django orm 关联表数据,即sql的多表查询 例如两个表: Apply表中定义了字段position为foreignkey指向job表的id字段, 1.通过job表查找子表apply的字段信息: job.objects.values( 'id', 'job_type', 'apply__date_created') 连接符为小写的子表tablename+双下线+子表字段名即:apply__date_created 表示寻找Apply表中的date_created字段 等价于后台的SQL:

Django笔记 如何扩展User表的字段

django 自带的权限框架,其中auth_user表的字段,很难满足正常的需求,因此需要扩展,至于扩展,一般有如下几种选择: 1. 直接修改django 源码,修改User class 的定义,以及各种方法等,然后把数据库auth_user表里的字段扩展到与自己需求一致.(源代码在:django.contrib.auth.models import User),这种方式,每次升级django都得很小心. 2. 把django 的user以及认证部分的源代码拷贝到自己的app下面,然后修改,配置