Использование несколькими приложениями 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, как создать таблицу поставщиков, а затем таблицу ингредиентов, поскольку таблица ингредиентов имеет внешний ключ к поставщикам?
Вот моя мысль:
- Вы можете создать оба в одном и том же models.py. Вы должны выделить его в отдельное приложение, если он обладает особой и полной функциональностью.
- Вы можете ссылаться на ключ forigen, найденный в другом приложении. См. здесь (4-й пример): https://docs.djangoproject.com/en/3.2/ref/models/fields/#foreignkey. Это не вызовет проблем, потому что таблицы не будут созданы, пока вы не выполните:
makemigrations
migrate