奇怪的问题。作为一项任务,我只接受带有数据{'title':'some movie title'}的请求。在本地主机上,我的代码工作正常。在Heroku中,数据始终被认为是不正确的。 views.py:
class MovieViewSet(viewsets.ModelViewSet):
queryset = Movie.objects.all()
serializer_class = MovieSerializer
def create(self, request, *args, **kwargs):
print("Data of the post request for debug:")
print(request.data)
title = request.data.get('title')
if not title:
return Response({'Error': "Body should be {'title':'The title of the Movie'}"}, status=status.HTTP_400_BAD_REQUEST)
例如,内容为{'title':'the ring of the ring'}的请求返回无效的主体错误。尝试使用浏览器(django api网站),curl和一些Web请求生成器。在Heroku上,可以在本地进行-无效请求。
所以我在Heroku上打印了它,这就是我得到的:
<QueryDict: {'_content_type': ['application/json'], '_content': ['{\r\n "title": "snatch"\r\n}']}>
显然,Heroku在收到的请求中添加了一些空白字符。知道为什么会这样吗?