我使用django-restframework,我使用postman POST json数据到我的项目,但我得到了像tittle这样的错误,我已经设置了raw和application/json这里是postman的代码。
POST /account/post/reply/ HTTP/1.1
Host: localhost:8000
Content-Type: application/json
Cache-Control: no-cache
Postman-Token: a0c7bd93-631e-4c7a-8106-87f018eaf7da
{
"user": "michael",
"userid": "1",
"ihelpid": 6,
"tittle": "6",
"info": "6",
"label": "3",
"tel": "dxy970525",
"picture1": null,
"picture2": null
}
我的代码很简单,就像:
from rest_framework.parsers import JSONParser,ParseError
class ReplyViewSet(viewsets.ModelViewSet):
"""
This viewset automatically provides `list` and `detail` actions.
"""
pagination_class=PageNumberPagination
queryset = Forum_reply.objects.all()
serializer_class = ReplySerializer
#filter
filter_backends = (DjangoFilterBackend, )
filter_fields = ['postID',]
def create(self, request, *args, **kwargs):
print(request.data)
data = JSONParser().parse(request)
return HttpResponse("ok")
在我使用viewsets之后,这个错误发生了,我已经在shell上打印了它,但是没有问题
6条答案
按热度按时间vlf7wbxs1#
我实际上也有同样的错误,如果你使用 AJAX ,你需要像下面这样使用JSON.stringify(data):
@SeriForte的回答为我指明了正确的方向
axr492tv2#
在我的例子中,我没有在数据中发送正确的JSON。所以请检查一下。
mutmk8jj3#
我已经解决了这个问题,我现在可以访问数据了
我改了我以前的代码
这将得到一个错误。如果我的代码如下:
然后我可以访问字典中的数据。
所以,我不知道为什么,但问题是固定的
soat7uwm4#
如果使用Javascript获取请求,则必须像这样对JSON Data对象进行字符串化
shyt4zoc5#
如果你使用的是postman,那么就不可能把注解放在body > raw部分。
像这样x1c 0d1x
所以最好把注解的部分去掉。
高温加热
envsm3lx6#
您还需要以JSON格式发送数据,例如,如果您的序列化器看起来像这样-
class exampleSerializer(serializers.ModelSerializer): meta:model = example fields =('title ',' content')
所以当你创建一个上面类的新对象时,你需要以下面的格式发送数据-
{“title”:“first”,“content”:“hey”},
这个bug给我解决了!