Django admindoc无法呈现reStructuredText

问题描述 投票:3回答:1

我正在使用django admindocs进行文档编制,并且基本功能运行良好(我可以访问文档页面,列出了文档文档中的模型,包括了help_text,等等。]

[不幸的是,文档字符串中的reStructuredText标记被完全忽略,例如

  • 超链接不会转换为超链接
  • 子弹列表不是子弹列表
  • 未解析Django标记,例如:model:appname.ModelName

我正在使用Django的开发主干版本(1.7)

这是我正在使用的文档字符串的示例:

class Adresse(models.Model):

    u"""Postanschrift

    Wird für 
     - Organisationen 
     - Personen 

    genutzt.

    Siehe auch https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#generic-relations 

    """

    object_id    = models.PositiveIntegerField()
    content_type = models.ForeignKey(ContentType)
    of           = generic.GenericForeignKey('content_type', 'object_id' )
    ...

当我将上述文档字符串内容粘贴到其他编辑器中(我使用http://rst.ninjs.org/时,一切都按预期工作。

此转换适用于文档字符串记录方法,例如

def my_method(self):
    """Docstring Heading

    1. Listitem 1
    2. Listitem 2

    refers to :model:`personen.Person`
    """
    pass

已正确转换。

我确定,我错过了很明显的东西,对吗?

python django restructuredtext docstring
1个回答
2
投票

然后admindocs模块的行为与Django 1.4中的行为相同。

  • 要从您的python文件自动生成可导航文档,Python Sphinx https://www.sphinx-doc.org可能是一种更好的方法,可以将生成的文件放在另一个伪静态文件夹中。为此,将sphinx文档复制到模板文件夹,然后添加自定义urls(..)view,以提供对文件的访问,并将限制设置为staff only(例如,通过规范修饰符login_required和[ C0]。

其他解决方案:

不幸的是,缺少关于第一次使用的文档,例如user_pases_test参数settings.py

请确保为了激活这些过滤器,将RESTRUCTUREDTEXT_FILTER_SETTINGS添加到settings.py中的django.contrib.markup'设置和模板中的INSTALLED_APPS

您应该已安装{% load markup %}。如果未安装,您将不会收到错误消息。当将Linux与bash一起使用时,输入:

docutils

直接渲染reStructuredText:

if [[ -z `pip freeze | grep docutils` ]]; then sudo easy_install docutils;fi;

from django import template

您可以通过遍历所有[相关]模型及其class Adresse(models.Model): doc = u"""Postanschrift Wird für - Organisationen - Personen """ t = template.Template('{% load markup %}{{ contentstr|restructuredtext }}') c = template.Context({'contentstr': doc}) __doc__ = t.render(c) 属性来自动完成此操作,随后按如下所示将字符串呈现为reStructuredText:

__docs__
© www.soinside.com 2019 - 2024. All rights reserved.