Я работаю в команде, разрабатывающей сетевой университетский портал, который будет основан на Django. Мы все еще находимся на стадии исследования, и я пытаюсь найти лучший способ выложить среду проекта / разработки.
Моя первоначальная идея состоит в том, чтобы разработать систему как «приложение» Django, которое содержит подпрограммы для разделения различных частей системы. Причина, по которой я намеревался сделать эти «вспомогательные» приложения, заключается в том, что они вообще не будут использоваться вне родительского приложения, поэтому было бы мало смысла распространять их по отдельности. Мы предполагаем, что портал будет установлен в нескольких местах (например, в разных университетах), поэтому основное приложение может быть добавлено в несколько проектов Django для его установки. Поэтому у нас есть свой репозиторий для каждого проекта местоположения, который на самом деле представляет собой просто файл settings.py
, определяющий установленные приложения портала, и urls.py
перенаправляющий URL-адреса на него.
Я уже начал писать некоторый начальный код и столкнулся с проблемой. Часть кода, который обрабатывает аутентификацию пользователей и профили, кажется, не имеет дома. Концептуально он не принадлежит приложению портала, поскольку не имеет отношения к функционалу портала. Это также, однако, не может быть включено в репозиторий проекта - поскольку я тогда дублировал бы код по репозиторию каждого местоположения. Например, если бы я обнаружил ошибку в этом коде, мне пришлось бы вручную реплицировать исправление для всех файлов проекта местоположения.
Моя идея для исправления состоит в том, чтобы сделать все репозитории проекта "веткой" проекта местоположения "master", чтобы я мог извлекать любые изменения из этого master. Я думаю, что это грязно, и это означает, что у меня есть еще один репозиторий, за которым нужно следить.
Я ищу лучший способ достичь этого проекта. Кто-нибудь может порекомендовать решение или подобный пример, на который я могу взглянуть? Кажется, проблема в том, что я разрабатываю проект Django , а не просто приложение Django .