Django Rest Framework视图集中的视图自定义模式

Ale*_*off 8 python django python-3.x django-rest-framework

我有一个使用Django和Django REST Framework构建的API.我有一个模型返回一些构建的JSON,它与典型的Django模型不对应.因此,似乎利用有关Django模型的知识的自动文档功能对我的一些视图不起作用.

特别是,我有一个viewset返回一些典型的API视图(如对象列表),以及一些返回一些自定义对象的视图.我想为这些自定义对象构建文档,但我不确定如何覆盖视图集中特定端点的模式.如何覆盖为DRF视图集中的单个视图生成的模式?

DRF似乎为视图提供了此功能,但我想对Viewsets执行相同的操作.

paw*_*.ad 6

好的,经过大量的尝试-失败-重试,我终于使它起作用了-您失去了一些自动(魔术)自省功能,例如idpath参数和从文档字符串中获取的描述,但是我仍然很值得:

custom_schema = ManualSchema(
    fields=[
        coreapi.Field(
            "id",
            required=True,
            location="path",
            schema=coreschema.String(
                title="ID",
                description="Foobar ID.",
            )
        ),
        coreapi.Field(
            "foobar",
            location="query",
            schema=coreschema.String(
                title="Foobar",
                description="Foobar?",
            )
        ),
    ],
    description="Foobar!",
)


class FoobarViewSet(viewsets.ReadOnlyModelViewSet):

    @action(methods=["get"], detail=True, schema=custom_schema)
    def foobar(self, request, id=None):
        ...
Run Code Online (Sandbox Code Playgroud)