Django模型“没有声明明确的应用程序标签”

8 浏览
0 Comments

Django模型“没有声明明确的应用程序标签”

我无从下手了。经过十几个小时的故障排除,也许更多,我认为终于可以开始工作了,但是随后我得到了:

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'

admin 更改状态以发布 2023年5月20日
0
0 Comments

我也遇到了同样的错误,不知道该如何解决这个问题。花了很多时间才注意到,在与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”错误。但是删除这个init文件解决了我的问题。

0
0 Comments

你是否忘记在设置文件中添加应用程序名称?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 文件中添加以下代码来更改其外观

myAppName/apps.py

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

0