#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
не имеет правильного отступа внутри класса, следовательно, класс не может идентифицировать для него класс сериализатора.