标签:__ serializers request user 组件 权限 type class drf
from app01 import models from rest_framework import exceptions from rest_framework.authentication import BaseAuthentication # 用drf的认证,写一个类 class LoginAuth(BaseAuthentication): # 函数名一定要叫authenticate,接收必须两个参数,第二个参数是request对象 def authenticate(self, request): # 从request对象中取出token(也可以从其它地方取) token = request.query_params.get('token') # 去数据库过滤,查询 ret = models.UserToken.objects.filter(token=token).first() if ret: # 能查到,说明认证通过,返回空 # ret.user就是当前登录用户对象 return ret.user, ret # 如果查不到,抛异常 raise exceptions.APIException('您认证失败') from rest_framework.permissions import BasePermission class UserPermission(BasePermission): # message是出错显示的中文 message='您没有权限查看' def has_permission(self, request, view): user_type = request.user.user_type # 取出用户类型对应的文字 # 固定用法:get_字段名字_display() user_type_name = request.user.get_user_type_display() print(user_type_name) if user_type == 2: return True else: return False
from rest_framework import serializers from app01 import models class BookSerializer(serializers.ModelSerializer): class Meta: model = models.Book fields='__all__' class AuthorSerializer(serializers.ModelSerializer): class Meta: model = models.Author fields='__all__' class UserSer(serializers.ModelSerializer): class Meta: model = models.UserInfo fields='__all__' # user_type=serializers.CharField(source='get_user_type_display') user_type=serializers.SerializerMethodField() def get_user_type(self,obj): return obj.get_user_type_display()
标签:__,serializers,request,user,组件,权限,type,class,drf 来源: https://www.cnblogs.com/xuqidong/p/13506063.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。