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

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

没有任何错误的输出:

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

其他回答

我在测试中导入模型时遇到了这个错误,即给出这个Django项目结构:

|-- myproject
    |-- manage.py
    |-- myproject
    |-- myapp
        |-- models.py  # defines model: MyModel
        |-- tests
            |-- test_models.py

在文件test_models.py中导入MyModel:

from models import MyModel

如果以这种方式导入,问题就解决了:

from myapp.models import MyModel

希望这能有所帮助!

PS:也许这有点晚了,但我在其他人的答案中没有发现如何解决我的代码中的这个问题,我想分享我的解决方案。

我在使用。/manage.py shell时得到了这个 然后我不小心从根项目级目录导入

# don't do this
from project.someapp.someModule import something_using_a_model
# do this
from someapp.someModule import something_using_a_model

something_using_a_model()

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

而不是

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

我在做

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

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

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

如果所有配置都是正确的,导入时可能会一团糟。注意您是如何导入有问题的模型的。

下面的代码在.models import Business中不起作用。请使用完全导入路径:from myapp。模型进口业务

我今天试图运行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