我有一个Django==2.2.3
带有djangorestframework==3.9.4
and的应用程序django-rest-swagger==2.2.0
。我想为我的 api 端点提供单一的事实来源(用于数据验证和 api-docs)。我有一个看起来像这样的 JSON
{
"get": {
"query_param1" : {
"type": "string",
"required": "false",
"message": "what does it do/what is it for?"
},
"query_param2" : {...},
"responseMessages": {
"code: 401": "Not authenticated",
"code: 403": "Insufficient rights to call this procedure"
}
},
"delete": {
"query_param1" : {...},
"query_param2" : {...},
"responseMessages": {...},
},
"put": {...},
"post": {...},
}
我从中创建了一个 json 模式,并且验证正在工作。
此 json 转换为 yaml 字符串,供django-rest-swagger
. 它是如何使用 yaml 的,您需要将 yaml 放在 doc 字符串中。但我不想为每件事都写同样的东西。会有很多端点,并且为所有这些端点编写相同的东西感觉不对。
所以我想如果我创建一个基类并将 json 发送到该基类,它可以为我创建所有 doc 字符串,使用 json 并将其动态地放入所需的函数中。我现在面对一个拦截器,它说。
AttributeError:“方法”对象的属性“__ doc __”不可写
这就是我的班级的样子
class Parent:
def __init__(self):
schema = json.load(schema_path)
self.get.__doc__ = convertToYaml(schema['get'])
**ERROR HERE: AttributeError: attribute '__doc__' of 'method' objects is not writable**
class Child(Parent)
def get(self):
JsonResponse({message: "Hi! I work fine" })
TLDR:
获得的错误:AttributeError:方法对象的属性 __ doc __ 不可写
问题:如何从父类更改子类函数的文档字符串?