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

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'

当前回答

在我的情况下,当我试图运行python manage.py runserver时,没有连接到我的项目的虚拟环境时,我得到了这个错误。

其他回答

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

而不是

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

我在做

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

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

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

如果所有这些都失败了,并且当你试图在PyCharm“Python控制台”(或“Django控制台”)中导入时看到这个错误:

尝试重新启动控制台。

这很尴尬,但我过了一会儿才意识到我忘了这么做。

事情是这样的:

添加了一个新的应用程序,然后添加了一个最小模型,然后尝试在Python/Django控制台导入模型(PyCharm pro 2019.2)。这引发了“不声明app_label”的显式错误,因为我还没有将新应用添加到INSTALLED_APPS中。 所以,我将应用程序添加到INSTALLED_APPS,再次尝试导入,但仍然得到相同的错误。

来到这里,看了所有其他的答案,但似乎都不合适。

最后,我突然意识到,在将新应用程序添加到INSTALLED_APPS后,我还没有重新启动Python控制台。

注意:在向模块中添加新对象后,无法重新启动PyCharm Python控制台,也会导致非常混乱的ImportError: Cannot import name…

当我尝试为一个由于git合并而存在畸形迁移的应用程序生成迁移时,我遇到了这个错误。如。

manage.py makemigrations myapp

当我删除它的迁移,然后运行:

manage.py makemigrations

错误没有发生,迁移成功生成。

在使用PyCharm运行测试时,我遇到了完全相同的错误。我已经通过显式设置DJANGO_SETTINGS_MODULE环境变量来修复它。如果您正在使用PyCharm,只需点击编辑配置按钮并选择环境变量。

将变量设置为your_project_name。设置和那应该解决问题。

似乎出现了这个错误,因为PyCharm使用自己的manage.py运行测试。

我有一个类似的问题,但我能够解决我的通过明确指定app_label使用元类在我的模型类

class Meta:
    app_label  = 'name_of_my_app'