【问题标题】:Django-Sphinx RuntimeError: Model class models.Project doesn't declareDjango-Sphinx RuntimeError:模型类models.Project没有声明
【发布时间】:2017-12-06 14:22:53
【问题描述】:

我正在尝试使用 django 项目的 Sphinx 生成 html 文档。在 windows cmd 上执行 make html 时出现以下错误。 我的settings.py 包含我构建的应用程序的条目,其中 models.py 文件所属。出于保密原因,我在这里将其称为 project_name。

INSTALLED_APPS = [
    'project_name.apps.project_nameAppConfig',
    'django.contrib.admin',
    'django.contrib.sites',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'import_export',
    'nested_admin',
    'report_builder',
    'rest_framework',
    'ajax_select',
]

错误跟踪:

> C:\django_project\docs\source\models.rst:4: WARNING: autodoc: failed to
> import module 'models'; the following exception was raised: Traceback
> (most recent call last):   File
> "C:\Users\...\AppData\Local\Continuum\Anaconda3\lib\site-packages\sphinx\ext\autodoc.py",
> line 658, in import_object
>     __import__(self.modname)   File "C:\django_project\project_name\models.py", line 8, in <module>
>     class Project(models.Model):   File "C:\Users\...\AppData\Local\Continuum\Anaconda3\lib\site-packages\django\db\models\base.py",
> line 118, in __new__
>     "INSTALLED_APPS." % (module, name) RuntimeError: Model class models.Project doesn't declare an explicit app_label and isn't in an
> application in INSTALLED_APPS.

感谢您的帮助!

【问题讨论】:

  • 嗯,它在 INSTALLED_APPS 中吗?
  • 请查看已编辑的答案,是的

标签: django python-sphinx sphinx-apidoc


【解决方案1】:

为我解决这个问题的是创建一个抽象类并从那里继承其他模型类,而不是直接从 django.db 模型类。在代码中类似于以下内容:

from django.db import models
class BaseModel(models.Model):

    class Meta:
        abstract = True  # specify this model as an Abstract Model    
        app_label = 'your_project_name'


class Project(BaseModel):
    name = models.CharField(max_length=200, unique=True)
    description = models.TextField
    client = models.CharField(max_length=200)

    def __str__(self):
        return self.name

...

从这里得到想法:Model class doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS

【讨论】:

    猜你喜欢
    • 2019-03-17
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多