Django REST - Ex1 - Сериализация

Мы дали задание для Django REST - Ex1 - Serialization, задание прикреплено на скриншоте ниже -

Деталь задачи

Для той же задачи мы написали код в виде -

from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse,HttpResponse
from rest_framework.parsers import JSONParser
from wishes.models import Wish
from wishes.serializers import WishSerializer


@csrf_exempt
def wish_list(request):
    pass
    """
    List all wishes or create a new wish
    """
    if request.method == 'GET':
      serializer = WishSerializer(Wish)
      serializer.data
      return JsonResponse(serializer.data)

        #Write method Implementation here

    if request.method == 'POST':
        pass
        #Write method Implementation here

@csrf_exempt
def wish_detail(request,pk):
    pass
    """
    Retrieve, update or delete a birthday wish.
    """
    try:
        wish = Wish.objects.get(pk=pk)
    except Wish.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        pass
        #Write method Implementation here

    elif request.method == 'PUT':
        pass
        #Write method Implementation here


    elif request.method == 'DELETE':
        pass
        #Write method Implementation here

Наши опасения, связанные с частью кода, заключаются в следующем

      serializer = WishSerializer(Wish)
      serializer.data
      return JsonResponse(serializer.data)

в этом serializer = WishSerializer(Wish) ошибка - Слишком много позиционных аргументов для функции callpylint(too-many-function-args)

Когда мы выполняем требуемый код, мы получаем ошибку, как показано ниже. Следовательно, нам нужен совет экспертов, что пошло не так в нашем коде-

self.assertEqual(res.status_code, row['response']['status_code']) AssertionError: 500 != 200 Stdout: {'response': {'body': [], 'headers': {'Content-Type': 'application/json'}, 'status_code': 200}, 'request': {'body': {}, 'headers': {}, 'url': '/wishes', 'method': 'GET'}}

from django.views.decorators.csrf import csrf_exempt
from django.http import JsonResponse,HttpResponse
from rest_framework.response import Response
from rest_framework.parsers import JSONParser
from wishes.models import Wish
from wishes.serializers import WishSerializer


@csrf_exempt
def wish_list(request):
    """
    List all wishes or create a new wish
    """
    if request.method == 'GET':
      qs = Wish.objects.all()
      serializer = WishSerializer(qs, many=True)
      return Response(serializer.data)

    if request.method == 'POST':
      serializer = WishSerializer(data=request.data)
      if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=201)  

@csrf_exempt
def wish_detail(request,pk):
    """
    Retrieve, update or delete a birthday wish.
    """
    try:
        wish = Wish.objects.get(pk=pk)
    except Wish.DoesNotExist:
        return Response(status=404)

    if request.method == 'GET':
        serializer =  WishSerializer(wish)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = WishSerializer(instance=wish, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=201)


    elif request.method == 'DELETE':
        wish.delete()
        return Response(status=204)
Вернуться на верх