Django - Мета-параметры модели app_label не работают - PullRequest
0 голосов
/ 27 марта 2020

У меня следующая 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'

Может кто-нибудь объяснить мне, почему это не работает? Есть ли лучшие способы решить эту проблему без импорта всех моделей?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...