{"title":"Django 管理文档生成器","version":"5.1","locale":"zh-hans","docname":"ref/contrib/admin/admindocs","url":"/zh-hans/5.1/ref/contrib/admin/admindocs/","canonical":"https://djangodocs.dev/zh-hans/5.1/ref/contrib/admin/admindocs/","summary":"Django 的 admindocs 应用程序从 INSTALLED_APPS 中的任何应用程序的模型、视图、模板标签和模板过滤器的 docstrings 中提取文档，并在 Django admin 中提供这些文档。 概况 Link to this heading # 要激活 admindocs ，你需要执行以下操作： 将…","html":"<span id=\"the-django-admin-documentation-generator\"></span><h1>Django 管理文档生成器<a class=\"heading-anchor\" href=\"#module-django.contrib.admindocs\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Django 的 <a class=\"reference internal\" href=\"#module-django.contrib.admindocs\" title=\"django.contrib.admindocs: Django's admin documentation generator.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">admindocs</span></code></a> 应用程序从 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中的任何应用程序的模型、视图、模板标签和模板过滤器的 docstrings 中提取文档，并在 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/admin/#module-django.contrib.admin\" title=\"django.contrib.admin: Django's admin site.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">Django</span> <span class=\"pre\">admin</span></code></a> 中提供这些文档。</p>\n<section id=\"overview\">\n<h2>概况<a class=\"heading-anchor\" href=\"#overview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>要激活 <a class=\"reference internal\" href=\"#module-django.contrib.admindocs\" title=\"django.contrib.admindocs: Django's admin documentation generator.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">admindocs</span></code></a>，你需要执行以下操作：</p>\n<ul class=\"simple\">\n<li><p>将 <a class=\"reference internal\" href=\"#module-django.contrib.admindocs\" title=\"django.contrib.admindocs: Django's admin documentation generator.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.admindocs</span></code></a> 添加到你的 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 中。</p></li>\n<li><p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">path('admin/doc/',</span> <span class=\"pre\">include('django.contrib.admindocs.urls'))</span></code> 加入到你的 <code class=\"docutils literal notranslate\"><span class=\"pre\">urlpatterns</span></code> 中。确保它被包含在 <code class=\"docutils literal notranslate\"><span class=\"pre\">'admin/'</span></code> 条目之前，这样对 <code class=\"docutils literal notranslate\"><span class=\"pre\">/admin/doc/</span></code> 的请求就不会被后者处理。</p></li>\n<li><p>Install the <a class=\"extlink-pypi reference external\" href=\"https://pypi.org/project/docutils/\">docutils</a> package (versions 0.19 through 0.21.2 required).</p></li>\n<li><p><strong>可选的：</strong> 使用 admindocs 书签需要安装 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.admindocs.middleware.XViewMiddleware</span></code>。</p></li>\n</ul>\n<p>一旦这些步骤完成，你就可以进入你的管理界面，点击页面右上方的“文档”链接，开始浏览文档。</p>\n</section>\n<section id=\"documentation-helpers\">\n<h2>文件辅助功能<a class=\"heading-anchor\" href=\"#documentation-helpers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>下面的特殊标记可以在你的 docstrings 中使用，以方便创建超链接到其他组件。</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>Django 组件</p></th>\n<th class=\"head\"><p>reStructuredText 角色</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p>模型</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">:model:`app_label.ModelName`</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>视图</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">:view:`app_label.view_name`</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>模板标签</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">:tag:`tagname`</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p>模板过滤器</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">:filter:`filtername`</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p>模板</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">:template:`path/to/template.html`</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n<section id=\"model-reference\">\n<h2>模型参考<a class=\"heading-anchor\" href=\"#model-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">admindocs</span></code> 页面的 <strong>模型</strong> 部分描述了系统中的每个模型及其所有字段、属性和可用方法。与其他模型的关系以超链接形式出现。描述来自字段的 <code class=\"docutils literal notranslate\"><span class=\"pre\">help_text</span></code> 属性或模型方法的 docstrings。</p>\n<p>一个具有有用文档的模型可能是这样的：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BlogEntry</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n<span class=\"w\">    </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">    Stores a single blog entry, related to :model:`blog.Blog` and</span>\n<span class=\"sd\">    :model:`auth.User`.</span>\n<span class=\"sd\">    &quot;&quot;&quot;</span>\n\n    <span class=\"n\">slug</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">SlugField</span><span class=\"p\">(</span><span class=\"n\">help_text</span><span class=\"o\">=</span><span class=\"s2\">&quot;A short label, generally used in URLs.&quot;</span><span class=\"p\">)</span>\n    <span class=\"n\">author</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span>\n        <span class=\"n\">User</span><span class=\"p\">,</span>\n        <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">SET_NULL</span><span class=\"p\">,</span>\n        <span class=\"n\">blank</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n        <span class=\"n\">null</span><span class=\"o\">=</span><span class=\"kc\">True</span><span class=\"p\">,</span>\n    <span class=\"p\">)</span>\n    <span class=\"n\">blog</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">ForeignKey</span><span class=\"p\">(</span><span class=\"n\">Blog</span><span class=\"p\">,</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CASCADE</span><span class=\"p\">)</span>\n    <span class=\"o\">...</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">publish</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n<span class=\"w\">        </span><span class=\"sd\">&quot;&quot;&quot;Makes the blog entry live on the site.&quot;&quot;&quot;</span>\n        <span class=\"o\">...</span>\n</code></pre></div>\n</section>\n<section id=\"view-reference\">\n<h2>视图参考<a class=\"heading-anchor\" href=\"#view-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>在你的网站中，每个 URL 在 <code class=\"docutils literal notranslate\"><span class=\"pre\">admindocs</span></code> 页面中都有一个单独的条目，点击给定的 URL 会显示相应的视图。你可以在视图函数 docstrings 中记录的有用内容包括：</p>\n<ul class=\"simple\">\n<li><p>简要说明该视图的作用。</p></li>\n<li><p>视图模板中的 <strong>上下文</strong>，或可用的变量列表。</p></li>\n<li><p>用于该视图的一个或多个模板的名称。</p></li>\n</ul>\n<p>例子：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.shortcuts</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">render</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MyModel</span>\n\n\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">my_view</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"n\">slug</span><span class=\"p\">):</span>\n<span class=\"w\">    </span><span class=\"sd\">&quot;&quot;&quot;</span>\n<span class=\"sd\">    Display an individual :model:`myapp.MyModel`.</span>\n\n<span class=\"sd\">    **Context**</span>\n\n<span class=\"sd\">    ``mymodel``</span>\n<span class=\"sd\">        An instance of :model:`myapp.MyModel`.</span>\n\n<span class=\"sd\">    **Template:**</span>\n\n<span class=\"sd\">    :template:`myapp/my_template.html`</span>\n<span class=\"sd\">    &quot;&quot;&quot;</span>\n    <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"p\">{</span><span class=\"s2\">&quot;mymodel&quot;</span><span class=\"p\">:</span> <span class=\"n\">MyModel</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">get</span><span class=\"p\">(</span><span class=\"n\">slug</span><span class=\"o\">=</span><span class=\"n\">slug</span><span class=\"p\">)}</span>\n    <span class=\"k\">return</span> <span class=\"n\">render</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"s2\">&quot;myapp/my_template.html&quot;</span><span class=\"p\">,</span> <span class=\"n\">context</span><span class=\"p\">)</span>\n</code></pre></div>\n</section>\n<section id=\"template-tags-and-filters-reference\">\n<h2>模板标签和过滤器参考<a class=\"heading-anchor\" href=\"#template-tags-and-filters-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p><strong>标签</strong> 和 <strong>过滤器</strong> <code class=\"docutils literal notranslate\"><span class=\"pre\">admindocs</span></code> 部分描述了所有 Django 自带的标签和过滤器（事实上， <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/builtins/#ref-templates-builtins-tags\"><span class=\"std std-ref\">内置标签参考</span></a> 和 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/builtins/#ref-templates-builtins-filters\"><span class=\"std std-ref\">内置过滤器参考</span></a> 文档直接来自这些页面）。任何你创建的或由第三方应用添加的标签或过滤器也会出现在这些章节中。</p>\n</section>\n<section id=\"template-reference\">\n<h2>模板参考<a class=\"heading-anchor\" href=\"#template-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>虽然 <code class=\"docutils literal notranslate\"><span class=\"pre\">admindocs</span></code> 并不包含记录模板本身的地方，但如果你在 docstring 中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">:template:`path/to/template.html</span></code> 语法，生成的页面会用 Django 的 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/templates/api/#template-loaders\"><span class=\"std std-ref\">模板加载器</span></a> 验证模板的路径。这是个很方便的方法来检查指定的模板是否存在，并显示该模板在文件系统中的位置。</p>\n</section>\n<section id=\"included-bookmarklets\">\n<span id=\"admindocs-bookmarklets\"></span><h2>包含的书签<a class=\"heading-anchor\" href=\"#included-bookmarklets\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">admindocs</span></code> 页面上有一个书签：</p>\n<dl class=\"simple\">\n<dt>关于本页面的文档</dt><dd><p>从任何页面跳转到生成该页面的视图文档。</p>\n</dd>\n</dl>\n<p>使用这个书签需要安装 <code class=\"docutils literal notranslate\"><span class=\"pre\">XViewMiddleware</span></code>，并且你以一个 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/auth/#django.contrib.auth.models.User\" title=\"django.contrib.auth.models.User\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">User</span></code></a> 的身份登录到 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/admin/#module-django.contrib.admin\" title=\"django.contrib.admin: Django's admin site.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">Django</span> <span class=\"pre\">admin</span></code></a>，并且 <a class=\"reference internal\" href=\"/zh-hans/5.1/ref/contrib/auth/#django.contrib.auth.models.User.is_staff\" title=\"django.contrib.auth.models.User.is_staff\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">is_staff</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n</section>","rootId":"module-django.contrib.admindocs","toc":[{"title":"概况","anchor":"overview","children":[]},{"title":"文件辅助功能","anchor":"documentation-helpers","children":[]},{"title":"模型参考","anchor":"model-reference","children":[]},{"title":"视图参考","anchor":"view-reference","children":[]},{"title":"模板标签和过滤器参考","anchor":"template-tags-and-filters-reference","children":[]},{"title":"模板参考","anchor":"template-reference","children":[]},{"title":"包含的书签","anchor":"included-bookmarklets","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/5.1/ref/"},{"docname":"ref/contrib/index","title":"contrib 包","url":"/zh-hans/5.1/ref/contrib/"},{"docname":"ref/contrib/admin/index","title":"Django 管理站点","url":"/zh-hans/5.1/ref/contrib/admin/"}],"prev":{"docname":"ref/contrib/admin/filters","title":"ModelAdmin 列表过滤器","url":"/zh-hans/5.1/ref/contrib/admin/filters/"},"next":{"docname":"ref/contrib/admin/javascript","title":"管理的 JavaScript 自定义","url":"/zh-hans/5.1/ref/contrib/admin/javascript/"},"formats":{"html":"/zh-hans/5.1/ref/contrib/admin/admindocs/","markdown":"/zh-hans/5.1/ref/contrib/admin/admindocs.md","json":"/zh-hans/5.1/ref/contrib/admin/admindocs.json"},"source":"https://github.com/django/django/blob/stable/5.1.x/docs/ref/contrib/admin/admindocs.txt","official":"https://docs.djangoproject.com/zh-hans/5.1/ref/contrib/admin/admindocs/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}