我正在尝试使用sphinx记录我正在编写的django应用。到目前为止,我已经设置了code.rst
来查看models.py
,并且当我运行make html
时会得到自动文档,但是我得到了警告:
警告:autodoc无法导入/查找属性'myapp.models.MyModel.image',它报告错误:“ image”,请检查您的拼写和sys.path
整个跟踪日志是:
Traceback (most recent call last):
File "C:\blah\lib\site-packages\sphinx\ext\autodoc.py", line 326, in import_object
obj = self.get_attr(obj, part)
File "C:\blah\lib\site-packages\sphinx\ext\autodoc.py", line 232, in get_attr
return safe_getattr(obj, name, *defargs)
File "C:\blah\lib\site-packages\sphinx\util\inspect.py", line 70, in safe_getattr
raise AttributeError(name)
AttributeError: image
MyModel.image
是一个图像字段,仅在模型上定义为:
#: image file location for ``MyModel``
image = models.ImageField(upload_to="images/")
例如,如果我将图像更改为models.Charfield
,它将运行良好。 ImageField
有什么原因会导致狮身人面像问题?
我的code.rst:
.. automodule:: dynamicbanners.models
:members:
因此,在阅读注释后,似乎这是Django的怪癖,与sphinx.ext.autodoc
混为一谈。希望该修复程序很快就会在Django 1.6中发布,或者失败,否则我认为即将发布的Sphinx 1.2版本可能提供解决方法,但是现在我需要找到某种解决方法。
看起来像在Django 1.8中已修复-https://code.djangoproject.com/ticket/12568