Добавить поле метода сериализатора в generics.ListAPIView - Django
У меня есть модель, ее название Permit. моя ОС windows 7 django 3.2 класс сериализатора:
class PermitListSerializer(serializers.ModelSerializer):
def __init__(self,page=None, *args, **kwargs):
self.page = page
super().__init__(*args, **kwargs)
page_number = serializers.SerializerMethodField()
userfullname = serializers.SerializerMethodField()
show_subsystem = serializers.SerializerMethodField()
def get_show_subsystem(self,obj):
return obj.subsystem.name
def get_userfullname(self, obj):
return obj.issuer.get_full_name() if obj.issuer.get_full_name() else 'Unknown'
def get_page_number(self, obj):
return self.page
class Meta:
model = Permit
fields = '__all__'
Мое мнение:
class c_receive_tm(generics.ListAPIView):
serializer_class = PermitListSerializer
filter_backends=(filters.SearchFilter,)
search_fields=('name', 'description')
def get_queryset(self):
return Permit.objects.all().order_by('-id')
при этом я получаю ошибку:
TypeError at /api/receive_tm/
Object of type Permit is not JSON serializable
Request Method: GET
Request URL: http://127.0.0.1:8000/api/receive_tm/
Django Version: 3.2.6
Exception Type: TypeError
Exception Value:
Object of type Permit is not JSON serializable
если я удалю все SerializerMethodField, он работает Мне нужны эти дополнительные поля