python - Django - 模型元选项 app_label 不起作用
问题描述
我有以下 Django 应用程序结构
apps
├── apartment
│ ├── migrations
│ ├── apps.py
│ ├── models
│ │ ├── apartment.py
│ │ ├── core.py
我添加apps.apartment.apps.ApartmentConfig
到INSTALLED APPS
. apartment.py
看起来像:
class Apartment(Model):
class Meta:
app_label = 'apartment'
当我运行 makemigrations 时,它说no changes detected。我在我的apps.py
.
class ApartmentConfig(AppConfig):
name = 'apps.apartment'
def ready(self):
print(self.label) # returns 'apartment'
from .models.apartment import Apartment
现在它工作正常。编写新模型时我应该总是这样做吗?正如文档所说:
如果模型是在 INSTALLED_APPS 中的应用程序之外定义的,它必须声明它属于哪个应用程序:
app_label = 'myapp'
谁能解释我为什么它不起作用?有没有更好的方法可以在不导入所有模型的情况下解决这个问题?
解决方案
推荐阅读
- node.js - 身份验证到期日期和一次登录
- java - 在自定义 Junit RunListener 中使用 Maven 的 EventSpyDispatcher
- php - MYSQLI_CLIENT_SSL 和 MYSQLI_OPT_SSL_VERIFY_SERVER_CERT 有什么区别?
- swift - 根据条件去抖 rx 可观察 - RxSwift
- directx-11 - 如何将 32 位红色纹理数据复制到 DXGI 格式的纹理 DXGI_FORMAT_R32_FLOAT
- python - 如何将 pandas 中的列条目与不同行中的另一个类似列条目进行匹配?
- java - 在Java中快速排序字符串数组?
- django - 将权限和组附加到从 BaseUserAdmin 创建的自定义用户模型
- python - (这可能吗?)Font-forge python 脚本修改字体以添加连字
- amazon-dynamodb - 需要有关 DynamoDB 架构的建议