博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DRF数据验证+数据存储
阅读量:6251 次
发布时间:2019-06-22

本文共 1532 字,大约阅读时间需要 5 分钟。

1.验证数据的自定义类

class BooksDRFt(serializers.ModelSerializer):    class Meta:        model = Book        fields = '__all__'    #要验证的字段    author = serializers.CharField(required=False)    #要验证的字段    name = serializers.CharField(min_length=2, error_messages{'required': '不能为空', 'min_length': '最短长度是二'})        #局部钩子    def validate_name(self,value):        response = {'status':100,'msg':'成功'}        res = models.Book.objects.filter(name=value)        if res:            raise exceptions.ValidationError('书名重复!')        else:            return value    #全局钩子    def validate(self, attrs):        name = attrs.get('name')        price = attrs.get('price')        if str(name) == str(int(price)):            raise exceptions.ValidationError('重复!')        else:            return attrs

​ 注意:1 必须继承ModelSerializer

​ 2.在视图函数中的使用

​ 1 验证+存储数据

class Books(APIView):    def post(self,request):        book_res = common.BooksDRFt(data=request.data)        if book_res.is_valid():            book_res.save()            return JsonResponse(book_res.data,safe=False)        else:            return JsonResponse(book_res.errors)

​ 2 验证+修改数据

class BooksUpdateCreate(APIView):    def put(self,request,id):        book = models.Book.objects.filter(id=id).first()        book_res = common.BooksDRFt(data=request.data,instance=book)        if book_res.is_valid():            book_res.save()            return JsonResponse(book_res.data,safe=False)        else:            return JsonResponse(book_res.errors)

转载于:https://www.cnblogs.com/jianhaozhou/p/10110534.html

你可能感兴趣的文章
centos 6.5安装vncserver 并开启远程桌面
查看>>
在RHEL上配置epel的yum源及其他开源YUM源
查看>>
qt 学习之路2
查看>>
刘启成_补充知识:awk:报告生成器
查看>>
ASP.NET 使用List<T>.Remove 不生效
查看>>
TCP有限状态机
查看>>
XenServer常用Debug问题的命令介绍
查看>>
算法分析-快速排序QUICK-SORT
查看>>
Web服务基础六之编译安装配置RHEL+Apache+MySQL+PHP+ZendOptimize
查看>>
通过bat文件运行jar包程序
查看>>
关于hive RegexSerDe的源码分析
查看>>
OpenCart之侧边浮动联系我们表单(Side Contact Us Form)
查看>>
PureWhite OpenCart 商城自适应主题模板 ABC-0009
查看>>
zabbix安装配置
查看>>
CentOS 配置***客户端
查看>>
线上应用故障排查之二:高内存占用
查看>>
老毛桃 win7
查看>>
第四次作业
查看>>
4196. [NOI2015]软件包管理器【树链剖分】
查看>>
Apache Spark源码走读之20 -- ShuffleMapTask计算结果的保存与读取
查看>>