#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. Я поддержал ваш ответ, но из-за моей низкой репутации он, вероятно, не зарегистрировался (пока).