Sphinx与Django - Model没有声明一个明确的应用程序标签

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

我花了无数个小时,但这仍然停滞不前。文档非常缺乏。使用Django 1.10,尝试创建已经出现各种错误的Sphinx文档。最后我被困在这里。我在我的主应用程序kyc_connect中创建了一个示例模型,如下所示。

Models.py

from django.db import models
class example(models.Model):        
    filed1 = models.DateTimeField(auto_now=True)

    # class Meta:
    #     app_label = 'kyc_connect'

运行make_html会出现以下错误。

RuntimeError: Model class kyc_connect.models.example doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

Conf.py import settings

import os
import sys    
sys.path.insert(0, os.path.abspath('..'))
from django.conf import settings
settings.configure()
import django
django.setup()

当我包括Meta课程目前已注释掉时,这个错误消失了。但如果我用ForeignKey包含一个模型并导入from django.contrib.auth.models import User它会给出错误RuntimeError: Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

INSTALLED_APPS

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework_swagger',
    'rest_framework',
    'rest_framework.authtoken',
    'kyc_connect',
    'kyc_connect_data_models',
    'kyc_rest_services.kyc_connect_accounts',
    'kyc_rest_services.kyc_connect_documents',
    'kyc_rest_services.kyc_connect_transaction_manager',
    'tasks',
    'elasticstack',
    'corsheaders',
    'haystack'
]

ProjectStructure

kyc_connect:
  -config
  -docs
  -kyc_connect
    -models.py
    .
    .
  -kyc_connect_data_models
  -kyc_core
  -kyc_rest_services
    -kyc_connect_accounts
    -kyc_connect_transaction_manager
    .
    .
  .
  .

我已经有django.contrib.contentype了。但是django似乎并不理解。我不想声明元类。出了什么问题。任何帮助都会很棒。

python django python-2.7 python-sphinx
2个回答
1
投票

我在我的项目中遇到了同样的问题,最后通过删除conf.py文件中的settings.configure()并运行来解决它

make clean
make html

在我的docs目录中。


0
投票

我的项目中出现了同样的错误。我通过更改在所有app文件中导入模型的方式解决了这个问题。例如,在admin.py中注册模型更改

from project.app.models import YourModel

至..

from .models import Your.Model