我的post方法API的测试收到状态码200,但是应该201我试图找出问题所在,但我没有。如果我将收到错误状态4xx,但我不知道为什么post方法为什么可以接收代码200,这会更容易。我的API视图工作正常,因此这一定是测试代码存在的问题,但是我真的不知道可能导致此问题的原因。也许我错了,状态码200可以,但是我认为post方法应该收到状态201。
test_api.py
class CreateComment(APIView):
def get_object(self, id):
try:
return Product.objects.get(id=id)
except Product.DoesNotExist:
raise Http404
def get(self,request, id):
product = self.get_object(id)
serializer = ProductSerializer(product)
return Response(serializer.data)
def post(self, request,id):
serializer = CommentSerializer(data=request.data)
if serializer.is_valid():
serializer.save(nick=request.user, product=self.get_object(id))
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
views.py
import { Subscription } from 'rxjs/Subscription';
import { Observable } from 'rxjs/Observable';
答案 0 :(得分:2)
在您的post()
中,如果成功,您需要返回status.HTTP_201_CREATED。
尝试一下:
def post(self, request,id):
serializer = CommentSerializer(data=request.data)
if serializer.is_valid():
serializer.save(nick=request.user, product=self.get_object(id))
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)