【发布时间】:2020-10-30 02:23:25
【问题描述】:
我知道这听起来可能很愚蠢,但我只是想知道如果我在已安装的应用程序列表中输入“myapp”而不是“myapp.apps.myappConfig”有什么区别。是模型相关还是什么?
问候
【问题讨论】:
标签: django django-models django-templates app-config django-apps
我知道这听起来可能很愚蠢,但我只是想知道如果我在已安装的应用程序列表中输入“myapp”而不是“myapp.apps.myappConfig”有什么区别。是模型相关还是什么?
问候
【问题讨论】:
标签: django django-models django-templates app-config django-apps
如果你使用myapp.apps.myappConfig,那么你就是在明确告诉 Django 使用那个应用配置类。
更改应用程序配置类可让您更改应用程序的行为,例如,当您使用管理应用程序时,您可以使用自动发现应用程序的django.contrib.admin.apps.AdminConfig,或不自动发现应用程序的django.contrib.admin.apps.SimpleAdminConfig。
如果你只使用myapp,那么 Django 会尝试使用default_app_config。如果没有设置,那么它将使用默认的AppConfig。
很多时候,myappConfig 中没有任何自定义,或者default_app_config 已设置,因此无论您在INSTALLED_APPS 中使用哪种样式,您都会获得相同的行为。
自从AppConfig 在 Django 1.7 中添加以来,建议一直使用 ``myapp.apps.myappConfigbecause it's explicit, and avoid usingdefault_app_config`。
然而,在实践中,用户似乎更喜欢使用myapp 的简单性。所以有了an open pull request,它会去掉default_app_config,只有一个的时候会自动选择app config class。
【讨论】: