在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
答案 0 :(得分:1)
任何方法可能只有一个文档字符串,因此通常有两个选项:
您可以为followers
方法定义单个文档字符串,并解释方法如何根据方法进行操作。如果您确定不同HTTP方法的业务逻辑不是太复杂,则此选项是合适的。
为不同的请求类型定义单独的方法,以便它们可以具有单独的文档字符串。这将允许您使每个方法中的逻辑尽可能简单。
您还可以考虑返回一个对象,该对象具有表示HTTP方法的单独方法并相应地调用它们。