DRF-在响应模式中显示“ write_only = True”

时间:2018-07-11 12:40:00

标签: python django-rest-framework swagger drf-yasg

我正在使用drf-yasg来记录我的API。但是,我遇到了问题

我有一个序列化器,其中的一个字段设置为write_only=True

class XYZSerializer(serializers.ModelSerializer):
    status = serializers.BooleanField(default=True, write_only=True)

    class Meta:

        model = XYZ
        fields = ('id', 'status')

在生成基本文档时,字段status仍显示在“响应”字段中。从技术上讲,它不应该。

该如何纠正?

1 个答案:

答案 0 :(得分:1)

不久: drf-yasg 的开发人员对此有answered。 OpenAPI 2.0 规范中的问题,您可以使用 https://github.com/tfranzel/drf-spectacular(它支持 OpenAPI 3.0)而不是 drf-yasg。

你可以只为装饰器创建特殊的序列化器

@swagger_auto_schema(responses={200: CustomResponseSerializer()})

或者使序列化器的字段动态化(Django Rest Framework: Dynamically return subset of fields)并像这样在视图集中装饰动作

@swagger_auto_schema(responses={200: YourSerializer(fields=['some_field_name', 'another_...')})

同样在 https://github.com/axnsan12/drf-yasg/issues/70,您可以找到从 https://github.com/axnsan12/drf-yasg/issues/70#issuecomment-698288806 出发的另一种方式

相关问题