Модель не определяется Django, даже если `app_label` ссылается на существующее приложение
У меня есть проект Django с приложением под названием application
.
Приложение устанавливается в INSTALLED_APPS
следующим образом:
'application.apps.MyAppConfig'
с AppConfig
:
### application/apps.py
class MyAppConfig(AppConfig):
name = 'application'
verbose_name = 'My App'
label = 'application'
path = f"{os.environ.get('APP_DIR')}/application"
default = True
У меня модели определены следующим образом:
### data/models/basemodel.py
class MyBaseModel(models.Model):
# ... fields ...
Meta:
app_label: `application`
Однако, Django не находит модели, и если я запускаю makemigrations
Django отвечает No changes detected
, а на migrate
приложение application
не появляется на Operations to perform
.
Модель должна быть определена, чтобы Django обнаружил миграции для применения
===
Контекст:
Полагаю, вы хотите иметь один модуль для каждой модели? Если да, то вам нужно импортировать ваши модели внутри models\__init__
следующим образом:
from .basemodel import BaseModel
Я также предлагаю вам определить __all__
внутри вашего init файла, чтобы легко импортировать ваши модели в другие части приложения:
__all__ = ["BaseModel"]
from .basemodel import BaseModel