为@action,Django-REST-framework中的每个方法都有一个特定的文档字符串

时间:2014-05-12 17:47:34

标签: python django django-rest-framework swagger

在Django-REST框架中,在ViewSet中,我在几种方法中使用@action装饰器使用额外的路由操作。 我希望每种方法都有不同的文档字符串,但显然这不起作用。 有什么想法吗?

@action(methods=['GET', 'POST', 'DELETE'])
def followers(self, request, player):

    if request.method == 'GET':
        """
        Get the players who follow this player
        """
        [...]

    elif request.method == 'POST':
        """
        Follow this player
        """
        [...]

    [...]

使用Swagger生成的文档:http://i.stack.imgur.com/8kzUw.png

1 个答案:

答案 0 :(得分:1)

任何方法可能只有一个文档字符串,因此通常有两个选项:

  1. 您可以为followers方法定义单个文档字符串,并解释方法如何根据方法进行操作。如果您确定不同HTTP方法的业务逻辑不是太复杂,则此选项是合适的。

  2. 为不同的请求类型定义单独的方法,以便它们可以具有单独的文档字符串。这将允许您使每个方法中的逻辑尽可能简单。

  3. 您还可以考虑返回一个对象,该对象具有表示HTTP方法的单独方法并相应地调用它们。