Модель не определяется 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 обнаружил миграции для применения

===

Контекст:

  • Ссылка на приложение Django: doc
  • Ссылка на модели Django: doc

Полагаю, вы хотите иметь один модуль для каждой модели? Если да, то вам нужно импортировать ваши модели внутри models\__init__ следующим образом:

from .basemodel import BaseModel

Я также предлагаю вам определить __all__ внутри вашего init файла, чтобы легко импортировать ваши модели в другие части приложения:

__all__ = ["BaseModel"]

from .basemodel import BaseModel
Вернуться на верх