Мой тест для моего метода записи API получил код состояния 200, но в 201 я попытался найти проблему, но не смог. Было бы проще, если бы я получил статус ошибки 4xx, но я понятия не имею, почему метод post мог получить код 200. Мое представление API работает нормально, поэтому это должно быть проблемой с тестовым кодом, но я действительно не знаю, что может вызвать эту проблему , Может быть, я ошибаюсь и код состояния 200 в порядке, но я думаю, что метод post должен получить статус 201.
test_api.py
def test_post_logged_in(self):
product = Product.objects.get(id=1)
self.client.login(username='test', password='test123')
data = {
'nick': self.user.id,
'rate': '1/5',
'content': 'here is comment',
'product': product.id
}
response = self.client.post(reverse('add_comments', kwargs={'id': product.id}), data, format='json')
self.assertEqual(response.status_code, 201, f'expected Response code 201, instead get {response.status_code}')
views.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)