Это предупреждение в django_tenants все еще действует?

#django #multi-tenant

#django #многопользовательский

Вопрос:

В apps.py в django_tenants я вижу это:

 recommended_config = """
Warning: You should put 'django_tenants' at the end of INSTALLED_APPS:
INSTALLED_APPS = TENANT_APPS   SHARED_APPS   ('django_tenants',)
This is necessary to overwrite built-in django management commands with
their schema-aware implementations.
"""
  

Мой вопрос: это все еще действует? У нас был установлен django_tenants (в dev) за несколько недель до того, как я случайно увидел это сообщение в коде. Оно не было последним в INSTALLED_APPS, но, похоже, работало просто отлично.

Ответ №1:

Если вы хотите, чтобы приложение переопределяло команды управления других приложений, оно должно быть указано первым:

Django регистрирует встроенные команды, а затем выполняет поиск команд в INSTALLED_APPS в обратном порядке. Во время поиска, если имя команды дублирует уже зарегистрированную команду, вновь обнаруженная команда переопределяет первую.

Другими словами, чтобы переопределить команду, новая команда должна иметь то же имя, а ее приложение должно быть перед приложением переопределенной команды в INSTALLED_APPS .

Итак, этот совет устарел (он был изменен пять лет назад).

Обратите внимание, что фактическая документация по установке для django_tenants является актуальной, список 'django_tenants' первый:

 SHARED_APPS = (
    'django_tenants',  # mandatory
    ...
)
INSTALLED_APPS = list(SHARED_APPS)   ...
  

Таким образом, найденная вами строка кода может быть неактуальной.

Комментарии:

1. Спасибо @kevin. Я поддержал ваш ответ, но из-за моей низкой репутации он, вероятно, не зарегистрировался (пока).