Совместное использование моделей между двумя разными проектами Django
У меня есть два разных проекта Django, которые должны использовать совершенно одинаковые db & одинаковые модели и работать на разных серверах. Я не хочу определять одни и те же модели дважды в обоих приложениях, так как модели могут измениться, и изменения должны быть сделаны на обеих сторонах. Каким будет лучшее решение, чтобы определить модели один раз и использовать одни и те же модели в обоих проектах?
Мне нужен был аналогичный подход для доступа к унаследованной базе данных из некоторых других django проектов. Я создал обычный проект django с общими моделями и методами. Далее, в других проектах, в верхней части моего settings_local.py
файла, я добавил этот общий проект в путь python:
import os
import sys
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.join(PROJECT_ROOT, 'my', 'relative', 'path', 'to', 'common_project'))
А затем добавьте приложения в общем проекте в INSTALLED_APPS
в зависимые другие.
Итак, я смог легко импортировать эти распространенные модели:
from common_project.app.models import MyModel
Вам стоит взглянуть на это!
https://docs.djangoproject.com/en/2.2/howto/legacy-databases/