我是靠谱客的博主 潇洒小鸭子,最近开发中收集的这篇文章主要介绍AssertionError: Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiati1. 报错信息2. 报错环境3. 报错原因4. 解决办法5. ps,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 报错信息

AssertionError: Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiating the serializer instance.

2. 报错环境

a. django2.2

b.drf

c. 视图继承了APIView

3. 报错原因

在使用序列化器的时候,对于get请求,使用了,下列方法进行校验

if text.is_valid():

b.反序列化的时候才有校验,序列化的时候没有校验,

c, 也就是说,序列化器只有在反序列化的时候,才有校验功能

4. 解决办法

a. 如果想对其校验,换成post即可

b. 一定要用get请求进行校验的话,那就不要用序列化器了,直接在视图进行校验

5. ps

也有可能是你的data写成了instance,这个写错的话,也会报这个错,

原因还是跟上面一样,instance是get请求的,get请求没有校验

最后

以上就是潇洒小鸭子为你收集整理的AssertionError: Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiati1. 报错信息2. 报错环境3. 报错原因4. 解决办法5. ps的全部内容,希望文章能够帮你解决AssertionError: Cannot call `.is_valid()` as no `data=` keyword argument was passed when instantiati1. 报错信息2. 报错环境3. 报错原因4. 解决办法5. ps所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部