AttributeError: объект 'Serializer' не имеет атрибута 'Meta' в django rest framework
Я использую serializers.Serializer вместо ModelSerializer, который не требует класса Meta, но он продолжает говорить, что у объекта нет атрибута Meta. Я не уверен, в чем проблема, но когда я запускаю localserver, главная страница выдает ошибку api fetch error, а в терминале написано AttributeError: 'Serializer' object has no attribute 'Meta'.
Мое мнение:
class ExampleView(viewsets.ModelViewSet):
queryset = Example.objects.all().order_by('-created_at')
serializer_class = ExampleSerializer
serializer_action_classes = {
'get_all_students_of_a_class': ExampleDetailSerializer,
}
def get_serializer_class(self):
"""
returns a serializer class based on the action
that has been defined.
"""
try:
return self.serializer_action_classes[self.action]
except (KeyError, AttributeError):
return super(ExampleView, self).get_serializer_class()
def get_employee_instance(self):
/........../
return teacher
def get_details_of_employee(self,request,pk=None):
id = pk
person = Person.objects.get(employee__id=id)
data = {
"employee": self.get_employee_instance(),
"person": person
}
serializer_class = self.get_serializer_class()
serializer = serializer_class(data)
return Response(serializer.data, status=status.HTTP_200_OK)
Мой сериализатор:
class ExampleDetailSerializer(serializers.Serializer):
employee = serializers.StringRelatedField()
person = PersonSerializer()
/................/
Однако он работает, и я могу выполнять действия, если захожу на localhost/admin и другие api вызовы с localhost.
Добавьте класс Meta с model = YourModel
class ExampleDetailSerializer(serializers.Serializer):
employee = serializers.StringRelatedField()
person = PersonSerializer()
class Meta:
model = Example # model name
fields = ('__all__')