Django app_标签在型号上有误

Django app_标签在型号上有误,django,django-models,django-rest-framework,Django,Django Models,Django Rest Framework,我有一个Django DRF应用程序。这是我的项目结构 myproject/ myproject/ apps/ myApp1/ __init__.py apps.py admin.py models.py urls.py views.py myApp2/ __init__.py st

我有一个Django DRF应用程序。这是我的项目结构

myproject/
    myproject/
    apps/
        myApp1/
            __init__.py
            apps.py
            admin.py
            models.py
            urls.py
            views.py
        myApp2/
        __init__.py
    static/
    manage.py
我的
已安装的应用程序包含:

INSTALLED_APPS = [
    'apps.myApp1.apps.AppOneConfig',
    'apps.myApp2.apps.AppTwoConfig',
]
当我转到
/manage.py shell\u plus
并运行:

SomeModel._meta.label
我看到的是
myApp1
myApp2
,而不是
apps.myApp1
&&
apps.myApp2
。甚至在迁移中,模型也被称为
myApp1.Model
myApp2.Model
而不是
apps.myApp1.Model
apps.myApp2.Model

此外,还指定了
AppConfig

from django.apps import AppConfig


class AppOneConfig(AppConfig):
    name = 'apps.myApp1'
    verbose_name = 'My App One'


这是预期的吗?我对Django很陌生。有人能告诉我错误是什么吗

这是预期的吗

,这是意料之中的。默认情况下,应用程序标签使用“python路径”的最后一部分。您可以通过在中指定来更改它。正是此
AppConfig
的属性决定了应用程序标签,并且:

(…)它默认为
name
的最后一个组件。它应该是一个有效的Python标识符。(……)

现在是,这是:

应用程序的完整Python路径,例如
'django.contrib.admin'

您可以通过首先在您的
myApp1
目录的
\uuuu init\uuuu.py
文件中指定
AppConfig
来指定这一点:

# apps/myApp/__init__.py

default_app_config = 'apps.myApp.apps.App1Config'
注意:目录通常使用
slug\u case
,因此我认为最好将您的
myApp1
重命名为
myApp1
my\u app1

编辑:因此需要将
AppOneConfig的
标签
属性设置为:

class AppOneConfig(AppConfig):
    name = 'apps.myApp1'
    label = 'apps_myapp1'
    verbose_name = 'My App One'
类AppOneConfig(AppConfig): 名称='apps.myApp1' 标签='apps\u myapp1'
verbose_name='My App One'
是,这是预期的。但是,您可以添加一个
AppConfig
并指定一个不同的标签。@WillemVanOnsem Oops。我的错,是我干的。忘了提了。更新我的问题。
class AppOneConfig(AppConfig):
    name = 'apps.myApp1'
    label = 'apps_myapp1'
    verbose_name = 'My App One'