Модель не определяется 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