Использование несколькими приложениями Django одной базы данных/модели

Новичок в Django... Я пытаюсь создать проект со следующей структурой:

CompanyName <--Project
  ingredients < -- Application
  CompanyName
  supplier <-- Application

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

  suppliers (table)
    - name
    - created_by (foreign_key, auth.User)
  ingredients (table)
    - name
    - supplied_by (foreign_key, supplier.name)

Мой вопрос в том, создаю ли я все таблицы в одном models.py или разбиваю каждую таблицу на manage.py для каждого приложения? Если я использую отдельные models.py, как создать таблицу поставщиков, а затем таблицу ингредиентов, поскольку таблица ингредиентов имеет внешний ключ к поставщикам?

Вот моя мысль:

  1. Вы можете создать оба в одном и том же models.py. Вы должны выделить его в отдельное приложение, если он обладает особой и полной функциональностью.
  2. Вы можете ссылаться на ключ forigen, найденный в другом приложении. См. здесь (4-й пример): https://docs.djangoproject.com/en/3.2/ref/models/fields/#foreignkey. Это не вызовет проблем, потому что таблицы не будут созданы, пока вы не выполните:

makemigrations

migrate

Вернуться на верх