En Django, la configuración se almacena en un archivo, settings.py. Este archivo es parte del código y va al repositorio. Solo los desarrolladores tratan con este archivo. El administrador trata con los modelos, los datos en la base de datos. Estos son los datos que edita el personal que no pertenece al departamento de desarrollo y los visitantes del sitio los visualizan en las plantillas.¿Cómo hacer que el personal pueda acceder a algunas configuraciones de Django?
El caso es que nuestro sitio y muchos otros tienen muchas opciones de configuración que deberían ser editadas por personal que no sea desarrollador. Estamos hablando de constantes autónomas para todo el sitio que realmente no tienen cabida en la base de datos. Ponerlos en la base de datos dará lugar a numerosas consultas sin sentido. El almacenamiento en caché podría aliviar eso, pero parece innecesariamente complejo manejar lo que se puede hacer con una sola línea en el archivo settings.py.
Me di cuenta this dbsettings app, pero es viejo y no mantenido. También noté que la aplicación de comercio electrónico django, Satchmo, incluye una bifurcación específica de caso de uso de esta aplicación dbsettings. Podríamos construir algo similar en nuestro sitio, una aplicación que almacena algunas configuraciones como pares clave/valor en una sola tabla de base de datos, pero realmente parece un enfoque equivocado. ¿Por qué poner algo en el DB que no pertenece solo para hacerlo más fácilmente editable por los no desarrolladores?
Tenemos una lista de configuraciones de todo el sitio en nuestro sitio Django que queremos que sean editables por administradores que no sean desarrolladores. ¿Cuál es la mejor manera de resolver esto?
+1 porque saber esto podría hacer que sea más fácil administrar proyectos de Django en VCS. Los desarrolladores deben tener cuidado de no realizar cambios locales a settings.py de lo contrario. –
el almacenamiento en caché lo aliviará (cuando la configuración local se ponga en la base de datos) a solo una consulta por instancia de proceso django. – Evgeny
para reiniciar el servidor con el fin de volver a cargar la configuración, puede llamar al archivo "touch site.wsgi", p. con un trabajo cron, pero esto solo funcionará si su proceso wsgi se ejecuta en el modo daemon – Evgeny