이 매우 복잡한 문제에 대한 해결책을 찾고 싶습니다.autodoc : 기본 클래스가 가져 오기를 존중하는 대신 전체 이름으로 표시됩니다.
내 프로젝트를 문서화하기 위해 스핑크스와 intersphinx를 사용합니다.
mongoengine.Document에서 상속받은 클래스가 있습니다.
sphinx-apidoc과 sphinx-build (sphinx-quickstart에 의해 자동 생성 된 Makefile을 통해)를 사용하여 sphinx 문서를 만들 때, mongoengine.Document 클래스에 대한 참조는 실제로 mongoengine.document.Document로 표시됩니다. 클래스 이름이 mongoengine이므로 mongoengine 프로젝트에서 문제가됩니다. 문법 때문에 intersphinx는 전혀 링크되지 않습니다.
기본 클래스에 대한 정보를 생성하기 위해 스핑크스에 알려줄 수있는 방법이 있습니까 (예 : mongoengine 가져 오기 문서에서 가져온 코드). 전체 모듈 경로 대신 가져올 수 있습니까?
다음 코드 :
from mongoengine import Document, EmbeddedDocumentListField
class MyDocument(Document):
""" my docstring """
는이 같은 일부 HTML을 생성합니다
class myproj.models.MyDocument(*args, **values) Bases:
mongoengine.document.Document <-- intersphinx does not find the link to external doc!
대신
class myproj.models.MyDocument(*args, **values)
Bases: mongoengine.Document <-- here intersphinx will properly link
까다로운 문제. 나는 그것을 해결하는 방법을 모른다. 클래스의 기초는'__bases__' 변수에서 결정됩니다. 'MyDocument .__ bases__'는'(,)'를 반환합니다. –
mzjn
해결 방법을 찾았습니다. 'Document .__ module__ = "mongoengine"을 코드에 추가하십시오. – mzjn
@mzjn 덕분에 일했습니다! 나는 네가 대답 할 수 있다고 생각한다. – BangTheBank