为Django休息框架视图集操作生成模式

Raj*_*war 7 django core-api django-rest-framework

根据DRF文档,我开始使用ViewSet并实施了list, retrieve, create, update and destroy操作.我有另一个APIView,我能够编写模式(ManualSchema),当我导航到/docs/我能够文档以及实时端点进行交互时.

我希望为每个视图集操作创建单独的模式.我尝试写一个,但它没有出现,所以我想我错过了一些东西.

这是代码:

class Clients(viewsets.ViewSet):

    '''

        Clients is DRF viewset which implements `create`, `update`, `read` actions by implementing create, update, list and retrieve functions respectively.

    '''
    list_schema = schemas.ManualSchema(fields=[
            coreapi.Field(
                'status',
                required=False,
                location='query',
                description='Accepted values are `active`, `inactive`'
            ),          
        ], 
        description='Clients list',
        encoding='application/x-www-form-urlencoded')

    @action(detail=True, schema=list_schema)
    def list(self, request):

        '''Logic for listing'''


    def retrieve(self, request, oid=None):

        '''Logic for retrieval'''


    create_schema = schemas.ManualSchema(fields=[
            coreapi.Field(
                'name',
                required=False,
                location='body',
            ),
            coreapi.Field(
                'location',
                required=False,
                location='body',
            ),              
        ], 
        description='Clients list',
        encoding='application/x-www-form-urlencoded')

    @action(detail=True, schema=create_schema)
    def create(self, request):

        '''Logic for creation'''
Run Code Online (Sandbox Code Playgroud)

y.l*_*uis 1

我认为你想做的事是不可能的。不ViewSet 提供任何方法处理程序,因此,您不能@action在方法create和上使用装饰器list,因为它们是现有路由。