Django模型“没有声明显式的app_标签”

2024-06-12 09:40:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经没办法了。经过十几个小时的故障排除,也许更多,我以为我终于开始做生意了,但后来我得到:

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

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

我使用的是Python3.4和Django1.10。

从my 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'

Tags: appsdjangonamefrompyimportcontribclass
3条回答

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

将变量设置为your_project_name.settings,这样可以解决问题。

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

是否缺少将应用程序名称放入设置文件中? myAppNameConfig是由.manage.py createapp myAppName命令在apps.py生成的默认类。其中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文件中添加以下代码来更改它的外观

myAppName/apps.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

这是相当混乱的,你得到这个“没有声明一个明确的应用程序标签”的错误。但是删除这个init文件解决了我的问题。

相关问题 更多 >