我正在努力与DRF 3.6 auto-generated interactive documentation一起提供输入参数以填充交互模式。
结果,我得到一个空窗口用于我的POST请求(实际上需要3个参数):
使用Swagger,我可以使用一些YAML直接在docstring中完成。 现在,在浏览DRF文档后,我无法找到实现它的方法。
class ActivateCustomerView(APIView):
permission_classes = (AllowAny,)
def post(self, request):
""" View dedicated to activating a pre-recorded customer
# Should I add some parameters here?
"""
serializer = ActivateCustomerSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
# ...
答案 0 :(得分:6)
我得到汤姆克里斯蒂的回答:
Set oShell = WScript.CreateObject("WSCript.shell")
oShell.run "cmd /K cd \ & cd C:\Users\me & cscript /nologo Setup.vbs > newfile & del example.ini & ren newfile example.ini & move example.ini C:\Program Files (x86)\Setup Folder"
本身不够 - 视图需要实现get_serializer,请参阅:https://github.com/encode/django-rest-framework/blob/master/rest_framework/schemas.py#L570
所以在我的情况下,添加这个效果很好:
serializer_class
答案 1 :(得分:0)
编辑:我忘了回答有关输入参数的问题。我相信这将基于序列化器。您是否尝试过指定serializer_class
?
使用DRF的内置文档生成器,您需要将文档字符串放在类级别并包含请求方法:
class ActivateCustomerView(APIView):
"""
post:
View dedicated to activating a pre-recorded customer
# Should I add some parameters here?
# if you have a get request
get:
# your docs for the get handler
"""
permission_classes = (AllowAny,)
def post(self, request):
serializer = ActivateCustomerSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
# ...