0

我正在处理自定义架构,Object of type Boolean is not JSON serializable但在 Swagger 文档页面上出现错误提示。

import coreapi
import coreschema
from rest_framework.schemas import AutoSchema


class CustomSchema(AutoSchema):
    def get_manual_fields(self, path, method):
        manual_fields = []
        if method == "POST":
            manual_fields.extend(
                [
                    coreapi.Field(
                        "custom_field",
                        required=False,
                        location="form",
                        description="custom field",
                        type=coreschema.Boolean()
                    )
                ]
            )
        return manual_fields

我注意到 usinglocation="query"不会产生上述错误,但我在formfor Swagger 中需要它。有什么解决方法吗?提前致谢!

4

1 回答 1

0

不一定能解决上述错误,但这里有一个用于相同目的的解决方法:

from rest_framework import serializers
from . import CustomModel


class CustomSerializer(serializers.ModelSerializer):
    custom_field = serializers.BooleanField(write_only=True)

    class Meta:
        model = CustomModel
        fields = "__all__"

而不是schema = CustomSchema()从调用views,调用 thisCustomSerializer并在序列化程序中指定一个write_only字段会自动填充 POST 方法的 Swagger 模式。

于 2020-06-26T20:57:15.110 回答