Django 模型“没有声明一个显式的 app_label”

新手上路,请多包涵

我无计可施了。经过十几个小时的故障排除,可能更多,我以为我终于开始营业了,但后来我得到了:

 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',
]

我的 apps.py 文件如下所示:

 from django.apps import AppConfig

class DeletenoteConfig(AppConfig):
    name = 'DeleteNote'

from django.apps import AppConfig

class LibrarysyncConfig(AppConfig):
    name = 'LibrarySync'

原文由 Slbox 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 965
2 个回答

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

设置.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 文件中添加以下代码来更改它稍后在 apps.py 文件中的外观

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

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

原文由 Xeberdee 发布,翻译遵循 CC BY-SA 4.0 许可协议

我得到同样的错误,我不知道如何解决这个问题。我花了好几个小时才注意到我在与 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”错误。但是删除这个 初始化 文件解决了我的问题。

原文由 Samuel Knoch 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题