У меня следующая Django структура приложения
apps
├── apartment
│ ├── <b>migrations</b>
│ ├── apps.py
│ ├── models
│ │ ├── apartment.py
│ │ ├── core.py
Я добавил apps.apartment.apps.ApartmentConfig
к INSTALLED APPS
. И apartment.py
выглядит так:
class Apartment(Model):
class Meta:
app_label = 'apartment'
Когда я запускаю makemigrations, он говорит изменения не обнаружены . И я написал следующий код в моем 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'
Может кто-нибудь объяснить мне, почему это не работает? Есть ли лучшие способы решить эту проблему без импорта всех моделей?