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

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'

当前回答

读完另一个答案后。我能理解。根据不同的情况使用不同的方法。 我来解释一下。我是怎么破案的。这也会帮助其他人

test_model.py pycharm和模型类的pycharm映射中没有显示错误或警告

在测试运行时显示如下错误

python manage.py test cheese

解决方案

from everych.cheese.models import Dodavatel

没有任何错误的输出:

结论:大多数建议在测试类中导入应用程序模型类的答案是有问题的。检查导入是否正确

其他回答

您是否遗漏了将应用程序名称放入设置文件中? 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测试时出现了这个错误,因为我在其中一个文件中使用了.models import *语法的简写。问题是我的文件结构是这样的:

    apps/
      myapp/
        models/
          __init__.py
          foo.py
          bar.py

在models/__init__.py中,我使用简写语法导入我的模型:

    from .foo import *
    from .bar import *

在我的应用程序中,我像这样导入模型:

    from myapp.models import Foo, Bar

这导致Django模型在运行./manage.py测试时没有显式声明app_label。

为了解决这个问题,我必须显式地从models/__init__.py中的完整路径导入:

    from myapp.models.foo import *
    from myapp.models.bar import *

这就解决了错误。

H - t https://medium.com/@michal。博克fix-weird-exceptions-when-running-django-tests-f58def71b59a

当我试图将Django Rest Framework应用程序升级到DRF 3.6.3和Django 1.11.1时,我得到了这个错误。

对于在这种情况下的其他人,我在GitHub问题中找到了我的解决方案,这是在DRF设置中取消UNAUTHENTICATED_USER设置:

# webapp/settings.py
...
REST_FRAMEWORK = {
    ...
    'UNAUTHENTICATED_USER': None
    ...
}

我今天得到了这个错误,在谷歌后结束了这里。现有的答案似乎都与我的情况无关。我唯一需要做的就是从应用程序顶层的__init__.py文件中导入一个模型。我必须将我的导入移动到使用模型的函数中。

Django似乎有一些奇怪的代码可以在很多不同的场景中失败!

我刚才也遇到了同样的问题。我已经通过在应用程序名称上添加一个名称空间来修复我的。希望有人觉得这有帮助。

apps.py

from django.apps import AppConfig    

class SalesClientConfig(AppConfig):
        name = 'portal.sales_client'
        verbose_name = 'Sales Client'