DRF Swagger - параметр конечной точки не соответствует сериализатору

Я пытаюсь создать REST API, используя DRF и Swagger для документации API, но заметил, что параметр пользовательского интерфейса Swagger не соответствует заданному сериализатору. MailSerializer.py `

from main.BusinessLayer.Model.Mails import Mails
from rest_framework import serializers


class MailSerializer(serializers.Serializer):
    class Meta:
        model = Mails
        fields = '__all__'

    # Mail Properties
    Subject =  serializers.CharField(max_length = 30, allow_blank = False)
    Sender = serializers.CharField(max_length = 30, allow_blank = False)
    Recipients = serializers.CharField(allow_blank = False)
    ReplyToAddress = serializers.CharField(max_length = 30)
    Importance = serializers.CharField(max_length = 30, allow_blank = False)
    ApplicationId = serializers.CharField(max_length = 30, allow_blank = False)

    # Mail Content
    Body = serializers.CharField(allow_blank = False)
    Attachments = serializers.CharField(allow_blank = False)

    # Other Parameters
    UseDefaultHeader = serializers.IntegerField(default = 0)
    UseDefaultFooter = serializers.IntegerField(default = 0)

    def create(self, validated_data):
        return Mails.objects.create(**validated_data)

`

 @swagger_auto_schema(
        operation_description="", 
        operation_summary="create a mail",
        request_body=MailSerializer
    )
    def create(self, request, *args, **kwargs):
        try:
            serializer = self.serializer_class(data=request.data)
            serializer.is_valid(raise_exception=True)
            self.perform_create(serializer)
            
            return Response({
                            'code': 200,
                            'success': True, 
                            'message': '%s successfully created.' % (OBJECT_NAME),
                            'data': []
                            }, status= status.HTTP_200_OK)

enter image description here

Я пытался использовать @swagger_auto_schema и параметры request_body, но все равно не работает

Проблема может заключаться в использовании Meta.fields с немодельным сериализатором, попробуйте изменить это:

class MailSerializer(serializers.Serializer):

to:

class MailSerializer(serializers.ModelSerializer):

allow_blank установленное значение true означает, что пустая строка должна рассматриваться как допустимое значение. Это не означает, что оно не является обязательным.

Попробуйте required, значение по умолчанию True, поэтому установите required=False

Вернуться на верх