Ошибка утверждения: ‘LeadViewSet’ должен либо включать атрибут `serializer_class`, либо переопределять метод `get_serializer_class ()`

#django #rest #postman #assertion

#django #rest #почтальон #утверждение

Вопрос:

Я хочу выполнить операции get и post в Postman. К сожалению, я получаю ошибку утверждения. Ниже приведены ошибка и код.

http://localhost:8000/api/lead/

Ошибка, которую я получаю, это:

 AssertionError at /api/lead/
'LeadViewSet' should either include a `serializer_class` attribute, or override the `get_serializer_class()` method.
Request Method: GET
Request URL:    http://127.0.0.1:8000/api/lead/
Django Version: 3.1.4
Exception Type: AssertionError
Exception Value:    
'LeadViewSet' should either include a `serializer_class` attribute, or override the `get_serializer_class()` method.
 

Вот код.

api.py

 from lead.models import Lead

from rest_framework import viewsets, permissions

from .serializers import LeadSerializer

#Lead Viewset

class LeadViewSet(viewsets.ModelViewSet):

    queryset = Lead.objects.all()

    permission_classes = [

     permissions.AllowAny

    ]

serializer_class = LeadSerializer
 

serializers.py

 from rest_framework import serializers

from lead.models import Lead

#Lead Serializer

class LeadSerializer(serializers.ModelSerializer):

    class Meta:

        model = Lead

        fields = '__all__'
 

urls.py

 from rest_framework import routers

from .api import LeadViewSet

router = routers.DefaultRouter()

router.register('api/lead', LeadViewSet, 'lead')

urlpatterns = router.urls
 

Комментарии:

1. Не уверен, что это ошибка, которую вы допустили, опубликовав здесь, или что та же ошибка есть и в вашем коде. serializer_class = LeadSerializer не входит в LeadViewSet класс

2. Отлично! Вот и все. Большое вам спасибо

Ответ №1:

Я думаю, что в api.py запишите последнюю строку, т.е.

serializer_class = LeadSerializer

не имеет правильного отступа внутри класса, следовательно, класс не может идентифицировать для него класс сериализатора.