Large Django Anwendungslayout

Ich bin in einem Team, das ein webbasiertes Universitätsportal entwickelt, das auf Django basiert. Wir befinden uns noch in der Erkundungsphase und ich versuche, den besten Weg zu finden, um das Projekt / die Entwicklungsumgebung zu gestalten.

Meine ursprüngliche Idee ist es, das System als Django-App zu entwickeln, die Unteranwendungen enthält, um die verschiedenen Teile des Systems voneinander zu trennen. Der Grund, warum ich beabsichtigte, diese "Unter" -Anwendungen zu erstellen, ist, dass sie außerhalb der übergeordneten Anwendung keinerlei Verwendung haben würden, sodass es wenig Sinn machen würde, sie separat zu verteilen. Wir planen, das Portal an mehreren Standorten (z. B. an verschiedenen Universitäten) zu installieren, damit die Haupt-App für die Installation in eine Reihe von Django-Projekten verschoben werden kann. Wir haben daher für jedes Standortprojekt ein anderes Repository, das eigentlich nur ein @ issettings.py -Datei, die die installierten Portalanwendungen definiert, und einurls.py Routing die URLs dazu.

Ich habe angefangen, einen ersten Code zu schreiben, und bin auf ein Problem gestoßen. Ein Teil des Codes, der die Benutzerauthentifizierung und -profile verwaltet, scheint ohne Heimat zu sein. Es gehört konzeptionell nicht zur Portalanwendung, da es sich nicht auf die Funktionalität des Portals bezieht. Es kann jedoch auch nicht in das Projekt-Repository aufgenommen werden, da ich dann den Code über das Repository jedes Standorts duplizieren würde. Wenn ich dann beispielsweise einen Fehler in diesem Code entdecken würde, müsste ich den Fix manuell über alle Projektdateien des Speicherorts replizieren.

Meine Idee für eine Korrektur ist, alle Projekt-Repos zu einer Abzweigung eines "Master" -Standortprojekts zu machen, damit ich alle Änderungen von diesem Master übernehmen kann. Ich denke, das ist allerdings chaotisch und es bedeutet, dass ich noch ein Repository habe, um das ich mich kümmern muss.

Ich suche nach einem besseren Weg, um dieses Projekt zu erreichen. Kann jemand eine Lösung oder ein ähnliches Beispiel empfehlen, das ich mir ansehen kann? Das Problem scheint zu sein, dass ich ein Django @ entwickProjek anstatt nur ein DjangoAnwendun.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage