drf后台数据校验以及认证组件

匿名 (未验证) 提交于 2019-12-02 23:49:02

校验

# objson.py class BookJson(serializers.ModelSerializer):     class Meta:         model = models.Book         fields = '__all__'            # 单个字段校验     name = serializers.CharField(min_length=3, max_length=5, error_messages={'min_length': '太短'})     # 局部钩子校验     def validate_name(self, value):         from rest_framework.exceptions import ValidationError         if 'sb' in value:             raise ValidationError('不能出现哔词汇')         return value  # views.py class Books(APIView):     # 新增     def post(self, request):         book = request.data         book_json = objson.BookJson(data=book)  # 必须明确data         if book_json.is_valid():  # 校验             book_json.save()  # 保存             return Response({                 'status': 0,                 'msg': 'ok',                 'results': book_json.data             })         return Response({             'status': 1,             'msg': book_json.errors,         }) 

了解

# 全局钩子校验 def validate(self, attrs):     from rest_framework.exceptions import ValidationError     pwd = attrs.get('pwd')     re_pwd = attrs.get('re_pwd')     if pwd == re_pwd:         return attrs     else:         raise ValidationError('密码校验失败') 

认证组件

# views.py  class Auth:     def authenticate(self, request):         # 完成具体认证功能         pass  class Book(APIView):     authentication_classes = [Auth, ] 
文章来源: https://blog.csdn.net/qq_36019490/article/details/96512034
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!