Django 管理文档生成器¶
Django 的 admindocs
应用程序从 INSTALLED_APPS
中的任何应用程序的模型、视图、模板标签和模板过滤器的 docstrings 中提取文档,并在 Django admin
中提供这些文档。
概况¶
要激活 admindocs
,你需要执行以下操作:
将
django.contrib.admindocs
添加到你的INSTALLED_APPS
中。将
path('admin/doc/', include('django.contrib.admindocs.urls'))
加入到你的urlpatterns
中。确保它被包含在'admin/'
条目之前,这样对/admin/doc/
的请求就不会被后者处理。安装 docutils 0.19+ 包。
可选的: 使用 admindocs 书签需要安装
django.contrib.admindocs.middleware.XViewMiddleware
。
一旦这些步骤完成,你就可以进入你的管理界面,点击页面右上方的“文档”链接,开始浏览文档。
文件辅助功能¶
下面的特殊标记可以在你的 docstrings 中使用,以方便创建超链接到其他组件。
Django 组件 |
reStructuredText 角色 |
---|---|
模型 |
|
视图 |
|
模板标签 |
|
模板过滤器 |
|
模板 |
|
模型参考¶
admindocs
页面的 模型 部分描述了系统中的每个模型及其所有字段、属性和可用方法。与其他模型的关系以超链接形式出现。描述来自字段的 help_text
属性或模型方法的 docstrings。
一个具有有用文档的模型可能是这样的:
class BlogEntry(models.Model):
"""
Stores a single blog entry, related to :model:`blog.Blog` and
:model:`auth.User`.
"""
slug = models.SlugField(help_text="A short label, generally used in URLs.")
author = models.ForeignKey(
User,
models.SET_NULL,
blank=True,
null=True,
)
blog = models.ForeignKey(Blog, models.CASCADE)
...
def publish(self):
"""Makes the blog entry live on the site."""
...
视图参考¶
在你的网站中,每个 URL 在 admindocs
页面中都有一个单独的条目,点击给定的 URL 会显示相应的视图。你可以在视图函数 docstrings 中记录的有用内容包括:
简要说明该视图的作用。
视图模板中的 上下文,或可用的变量列表。
用于该视图的一个或多个模板的名称。
例子:
from django.shortcuts import render
from myapp.models import MyModel
def my_view(request, slug):
"""
Display an individual :model:`myapp.MyModel`.
**Context**
``mymodel``
An instance of :model:`myapp.MyModel`.
**Template:**
:template:`myapp/my_template.html`
"""
context = {"mymodel": MyModel.objects.get(slug=slug)}
return render(request, "myapp/my_template.html", context)
模板参考¶
虽然 admindocs
并不包含记录模板本身的地方,但如果你在 docstring 中使用 :template:`path/to/template.html
语法,生成的页面会用 Django 的 模板加载器 验证模板的路径。这是个很方便的方法来检查指定的模板是否存在,并显示该模板在文件系统中的位置。
包含的书签¶
在 admindocs
页面上有一个书签:
- 关于本页面的文档
从任何页面跳转到生成该页面的视图文档。
使用这个书签需要安装 XViewMiddleware
,并且你以一个 User
的身份登录到 Django admin
,并且 is_staff
设置为 True
。