Django Rest framework之权限的实现示例之权限的实现示例
主要介绍了Django Rest framework之权限的实现示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟
随小编过来看看吧
一、权限实例一、权限实例
在阅读本文之前请先参考django rest framework 之 认证 中关于 django rest framework 的相关内容及实例
1、目录结构、目录结构
为了更好的管理各个功能组件,在django rest framework 之 认证 中我们说到可以将认证类单独的拿出来,放到其他目录下,然后导入到
views.py 文件中,在权限环节我们亦可以这么做,目录结构就变成这样
在api这个app下创建一个utils包专门用来存放相关的组件。
2、为模型类添加认证字段、为模型类添加认证字段
我们在models.py中定义了两个模型类,分别是
from django.db import models
class UserInfo(models.Model):
USER_TYPE = (
(1,'普通用户'),
(2,'VIP'),
(3,'SVIP')
)
user_type = models.IntegerField(choices=USER_TYPE, default=1)
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
class UserToken(models.Model):
user = models.OneToOneField(UserInfo,on_delete=models.CASCADE)
token = models.CharField(max_length=64)
在 UserInfo 中通过为用户添加一个 user_type 字段来保证用户的身份,是普通用户,VIP还是SVIP,这样就可以通过用户的身份验证不同的权
限。如果想要定义一个视图类,这个类中的逻辑只有超级用户才能访问。
3、具体权限认证、具体权限认证
可以再utils中的 permissions.py 中这么写
# utils/permission.py
class SVIPPremission(object):
message = "必须是SVIP才能访问" # 这里的message表示如果不通过权限的时候,错误提示信息
def has_permission(self,request,view):
if request.user.user_type != 3:
评论0
最新资源