Ho molti progetti di django che sembrano uguali: ci sono alcuni modelli di Config e alcuni modelli di azioni dell'utente Risultati. L'attività consiste nel creare un punto di controllo dei modelli di configurazione, mantenere la cronologia delle modifiche e disporre dell'autorizzazione (chiamiamo l'interfaccia di controllo di progetto). E penso che l'admin di django sarà buono per questo e django-reversion per la cronologia delle modifiche.
Qual è la migliore architettura per i progetti e l'interazione con l'interfaccia utente di controllo?
I miei pensieri:
- Per ogni progetto, effettua una connessione al database di UI di controllo e conserva i modelli di configurazione. Imposterò l'interfaccia utente di controllo come dipendenza del pacchetto per ogni progetto e utilizzerò i modelli di configurazione dall'app creata per il progetto corrente.
- Lo stesso con una connessione al database della UI di controllo, ma i modelli sono mantenuti nei progetti e l'interfaccia utente di controllo ha tutti i progetti come dipendenze. Questa è la più semplice da implementare, ma l'interfaccia utente di Conftol potrebbe avere conflitti nelle dipendenze poiché ogni progetto potrebbe utilizzare versioni diverse di alcuni moduli.
- Non fare nulla con i DB. Crea un'API REST per ciascun progetto e crea modelli basati su chiamate API nell'interfaccia di controllo. Ho bisogno di modelli da usare in admin. Non ho ancora provato, ma sembra che django-reversion non funzionerà con i modelli di Config se saranno su API.
Altre opzioni?