Django设置权限

Django1.9

使用Django内置的权限验证机制。

内置权限表名
auth_permissions

models

# models.py
from django.db import models


class Student(models.Model):
    ...
    class Meta:
        ...
        # 内置权限
        default_permissions = ('add',)
        # 自定义权限
        permissions = (
            ('view_student', 'Can view student'),
        )
default_permissions

默认为('add', 'change', 'delete')。你可以自定义这个列表,例如,如果你的应用程序不需要任何默认权限,你可以将这个列表设置为空列表。在迁移创建模型之前,必须在模型上指定它,以防止创建任何省略的权限。
例:add
将会在auth_permissin表中新建一条权限数据,name字段为Can add studentcodename字段为add_student

permissions
permissions = (
    ('view_student', 'Can view student'),
)

views

permission_required

使用permission_required装饰器验证权限

# views.py
from django.contrib.auth.decorators import permission_required


@permission_required('app.view_student', login_url='/')
def students(request):
    '''查看用户列表'''
    return render(request, 'students.html')
has_perm

使用user对象的has_perm方法判断,返回True/False。

# views.py
def students(request):
    '''查看学生列表'''
    user = request.user
    if user.has_perm('app.view_student') == True:
    	return render(request, 'students.html')
    else:
    	pass  # todo
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值