Отношения Django между приложениями: как разделить приложения?

Мне нужно соединить два приложения в проекте Django, но я не хочу импортировать модели из одного в другое. Поддержание их в чистоте позволит мне позже использовать их отдельно.

В этом конкретном случае мне нужно отношение многих ко многим между двумя моделями в этих отдельных приложениях. Одним из решений будет создание модели в главном приложении проекта, которая определяет внешние ключи для обоих. Это способ Django или есть лучшее решение?

2 ответа

Может быть, вы ищете своего рода образец посредника. Если вашим приложениям не нужно знать друг друга, одним из подходов может быть написание другого приложения, которое будет знать оба.

Профили django, django-sorl, django- все работают как отношения типа "многие к одному". Когда вы решите использовать один из этих плагинов / приложений (и других), вы в конечном итоге сделаете свое разработанное приложение зависимым от их присутствия.

Вариант 1. Учитывая вышеизложенное... сделайте одно из приложений, которое вы намереваетесь разработать, достаточно универсальным, чтобы зависимость была только односторонней (следовательно, другие приложения будут зависеть от нее, но не наоборот). Это то, что большинство приложений Django уже делают.

Вариант 2. Если каждое из ваших приложений разделяет зависимость друг от друга, вы, вероятно, упростите свою жизнь, просто оставив ее частью одного приложения / плагина.

Другие вопросы по тегам