In Django, le impostazioni sono memorizzate in un file, settings.py. Questo file è parte del codice e va nel repository. Solo gli sviluppatori si occupano di questo file. L'amministratore si occupa dei modelli, i dati nel database. Questi sono i dati che le modifiche del personale non di sviluppo e i visitatori del sito vedono renderizzati nei modelli.Come rendere alcune impostazioni di Django accessibili dallo staff?
Il fatto è che, il nostro sito e molti altri, hanno molte opzioni di impostazione che dovrebbero essere modificate da personale non addetto allo sviluppo. Stiamo parlando di costanti stand-alone in tutto il sito che non hanno davvero spazio nel database. Inserirli nel database comporterà numerose query inutili. Il caching potrebbe alleggerirlo, ma sembra inutilmente complesso gestire ciò che può essere fatto con una singola riga nel file settings.py.
Ho notato this dbsettings app, ma è vecchio e non mantenuto. Ho anche notato che l'app di e-commerce django, Satchmo, include un fork specifico per l'utilizzo di questa app dbsettings. Potremmo creare qualcosa di simile nel nostro sito, un'app che memorizza alcune impostazioni come coppie chiave/valore in una singola tabella di database, ma sembra davvero l'approccio sbagliato. Perché mettere qualcosa nel DB che non ci appartiene solo per renderlo più facilmente modificabile dai non-sviluppatori?
Abbiamo un elenco di impostazioni del sito sul nostro sito Django che vogliamo essere modificabili da amministratori non sviluppatori. Qual è il modo migliore di fare questo?
+1 perché sapendo questo potrebbe rendere più facile la gestione dei progetti Django in VCS. Gli sviluppatori devono fare attenzione a non commettere modifiche locali su settings.py altrimenti. La cache –
allevierà questo (quando le impostazioni locali vengono inserite nel database) a una sola query per istanza del processo django. – Evgeny
per riavviare il server per ricaricare le impostazioni è sufficiente chiamare il file "touch site.wsgi", ad es. con un processo cron, ma funziona solo se il processo wsgi viene eseguito in modalità daemon – Evgeny