如何在DRF文档中描述参数

2024-04-25 05:18:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是Django REST frameworkv3.6内置的交互式文档django_rest_framework.documentation不是django-rest-swagger)。在

基本上,我遵循the official documentation并在我的URLset配置中使用它:

from rest_framework.documentation import include_docs_urls

urlpatterns = [
    url(r"^", include_docs_urls(title="My API")),
    ...
]

一切似乎都在工作,我得到了一个不错的交互式文档页面,但是我有一个ViewSet和{}的ViewSet,关于生成的文档有一件事困扰着我:

In "Path parameters", the description for "slug" parameter is empty

我想知道一些有用的信息,比如“一个唯一的永久分配的字母数字标识”或者其他行,但是找不到这些数据的来源文档。在

有一个解决办法,但我真的不想define all the schema explicitly。我想用漂亮的docstring声明我的类,并自动生成文档。我还发现了一个建议,将slug -- here goes the description放在docstring中,但它似乎不起作用-文本只是与Markdown格式的其余描述一起出现。在

所以。。。我想知道两件事:

  1. (一个特定的问题)在哪里填写路径参数描述?在
  2. (同一问题的更一般版本)学习如何从代码自动生成模式的最佳方法是什么?在

Tags: thedjango文档restdocsincludedocumentationswagger
2条回答

哦,我找到了。回答我自己的问题。在

DRF文档在这个问题上并不冗长(或者我错过了它所在的部分),但是它提到了^{} class,而且似乎这个类确实完成了所有的内省工作。幸运的是,源代码结构良好,易于阅读。在

这些路径字段是由^{}方法生成的(我通过跟踪执行路径找到它:get_schemaget_linksget_link),我发现了描述come from model fields's ^{}属性。在

所以在我的模型中,我指定了:

class MyResource(models.Model):
    slug = models.CharField(unique=True, help_text=_("unique alphanumeric identifier"))
    ...

而且成功了!在

有一件重要的事还没有被报道。确实,描述来自help_text属性,但这还不够。我发现模式生成器依赖于view's ^{}属性来确定模型。所以,记住你需要定义它,即使你不需要它。例如使用APIView。在

相关问题 更多 >