Python &引用;http方法未绑定到视图";在drf_yasg中记录基于类的视图时
之前,我记录了我基于函数的视图,如下所示:Python &引用;http方法未绑定到视图";在drf_yasg中记录基于类的视图时,python,django,django-rest-framework,drf-yasg,Python,Django,Django Rest Framework,Drf Yasg,之前,我记录了我基于函数的视图,如下所示: @swagger\u auto\u模式( 操作\u id='ChangePassword', 方法=['POST'], 请求\u body=ChangePasswordSerializer, 回应={ “200”:“空响应正文”, }) def更改_密码(请求): #代码在这里 然后,我们将视图切换到基于类,因此我只需将文档装饰器复制粘贴到post方法: class UserChangePasswordView(APIView): @大摇大摆的自动
@swagger\u auto\u模式(
操作\u id='ChangePassword',
方法=['POST'],
请求\u body=ChangePasswordSerializer,
回应={
“200”:“空响应正文”,
})
def更改_密码(请求):
#代码在这里
然后,我们将视图切换到基于类,因此我只需将文档装饰器复制粘贴到post
方法:
class UserChangePasswordView(APIView):
@大摇大摆的自动模式(
操作\u id='ChangePassword',
方法=['POST'],
请求\u body=ChangePasswordSerializer,
回应={
“200”:“空响应正文”,
})
def post(自我,请求):
#代码在这里
但是,在运行此装饰程序时,引发了异常
文件“/usr/local/lib/python3.6/site packages/drf_yasg/utils.py”,第126行,在decorator中
断言所有(可用的\u方法中的mth用于\u方法中的mth),“http方法未绑定到视图”
发生了什么事?这个错误消息是什么意思?事实证明,在decorator中以及通过应用decorator的方法的名称隐式指定视图的HTTP方法是无效的 解决方案是简单地从装饰器中删除
方法
键:
class UserChangePasswordView(APIView):
@大摇大摆的自动模式(
操作\u id='ChangePassword',
请求\u body=ChangePasswordSerializer,
回应={
“200”:“空响应正文”,
})
def post(自我,请求):
#代码在这里
请注意,其中提到了
method
和methods
是互斥的,只有在修饰包含多个HTTP请求方法的视图方法时才必须出现
因此,如果您的
UserChangePasswordView.post()
处理了多个方法,那么方法将是有效的。谢谢!这是合理的,我不知道我是如何忽视这一点的。尽管如此,我仍然发现很难从错误消息中获得修复。@ThePadawan drf yasg是一个新的软件包,对于它的年龄来说,它是多么的美丽。你们可以提出新的问题,也许可以为它做出贡献,使它更具可读性。很高兴我帮了忙!谢谢你,我会努力的!嘿这里所说的图书馆的作者——刚才注意到了这个问题;将研究添加一个有用的断言,感谢您指出!