Django中已经为我们设置好了基本的权限系统,在定义好model同步数据库后,在每个库下面都会有一张 'auth_permission' 表。该表里面记录了每条权限的描述(name字段,can do something,会显示在后台付权限的列表中)和名字(codename字段,代码逻辑中检查权限使用,该字段会在权限验证函数perm_check中被 'request.user.has_perm' 方法调用,来判断是否通过验证。)
权限系统的基本逻辑流程:
1、用户发起操作请求时,根据url匹配到相应的试图函数处理(返回相关信息)
2、在给用户返回信息之前,首先验证该用户是否有权限查看所请求的信息(装饰器)
3、装饰器函数中,通过监测用户http请求的url、method和参数来确定权限
4、若验证通过,返回查询信息(执行被装饰器装饰的函数)。若验证不通过,返回 403 页面
1、在每个给前端返回信息的views函数上添加装饰器,
from permissions importcheck_permission #导入方法
@check_permission #向前段页面返回客户信息时,先执行装饰器方法,验证是否有权限defcustomer(request):
,,,
@check_permission
def customer_info(request,customer_id):
,,,
2、model中添加规则(数据库中添加权限纪录)
classUserProfile(models.Mo