我真是一筹莫及。经过十几个小时的故障排除,可能更多,我以为我终于可以做生意了,但接着我发现:

Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label 

网上关于这方面的信息太少了,没有解决方案可以解决我的问题。任何建议都将不胜感激。

我使用的是Python 3.4和Django 1.10。

从我的settings.py:

INSTALLED_APPS = [
    'DeleteNote.apps.DeletenoteConfig',
    'LibrarySync.apps.LibrarysyncConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

我的app .py文件是这样的:

from django.apps import AppConfig


class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

and

from django.apps import AppConfig


class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'

当前回答

在我移动SECRET_KEY以从环境变量中提取,并且在运行应用程序时忘记设置它之后,我收到了这个错误。如果你的settings。py中有这样的东西

SECRET_KEY = os.getenv('SECRET_KEY')

然后确保您实际上设置了环境变量。

其他回答

您是否遗漏了将应用程序名称放入设置文件中? myAppNameConfig是由.manage.py createapp myAppName命令在apps.py中生成的默认类。其中myAppName是应用程序的名称。

settings.py

INSTALLED_APPS = [
'myAppName.apps.myAppNameConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

这样,设置文件就会找到您想要调用应用程序的内容。您可以通过在apps.py文件中添加以下代码来更改它的外观

我的应用名称/应用程序.py

class myAppNameConfig(AppConfig):
    name = 'myAppName'
    verbose_name = 'A Much Better Name'

我得到同样的错误,我不知道如何解决这个问题。我花了好几个小时才发现django中的manage.py和init.py在同一个目录下。

之前:

|-- myproject
  |-- __init__.py  <---
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

后:

|-- myproject
  |-- manage.py
  |-- myproject
    |-- ...
  |-- app1
    |-- models.py
  |-- app2
    |-- models.py

当你得到这个“没有声明一个显式的app_label”错误时,你会感到非常困惑。但是删除这个init文件解决了我的问题。

TL;DR:添加一个空白__init__.py为我解决了这个问题。

我在PyCharm中得到了这个错误,并意识到我的设置文件根本没有被导入。没有明显的错误告诉我这一点,但是当我在settings.py中放入一些无意义的代码时,它并没有引起错误。

我在local_settings文件夹中有settings.py。但是,我忘记在同一个文件夹中包含__init__.py,以便导入它。一旦我添加了这个,错误就消失了。

我在Django rest_framework中构建API时遇到了类似的错误。

模型类apps.core.models.University没有显式声明> app_label,也不在INSTALLED_APPS中的应用程序中。

Luke_aus的回答纠正了我的urls.py

from

from project.apps.views import SurgeryView

to

from apps.views import SurgeryView

O G M… 我也得到了这个错误,我花了将近2天的时间,现在我终于设法解决了它。老实说……这个错误与问题本身无关。 对我来说,这只是一个简单的语法问题。我试图运行一个独立的python模块,在django上下文中使用一些django模型,但模块本身不是django模型。但我认为这门课是错的

而不是

class Scrapper:
    name = ""
    main_link= ""
    ...

我在做

class Scrapper(Website):
    name = ""
    main_link= ""
    ...

这显然是错误的。这个信息是如此的误导,以至于我忍不住认为这是配置上的一些问题,或者只是使用django的方式错误,因为我对它很陌生。

我将在这里分享给那些新手,因为我经历了同样的愚蠢,希望能解决他们的问题。