Bueno no se necesita ser un experto para asumir que si te preocupa la seguridad y quieres hacer tu proyecto *open source*, lo mas seguro es que estés hardcodeando valores en tus settings.py. Tengo que admitirlo es un error muy frecuente.
La solución que te dan en 2scoops of django, es muy simple. Pon ese tipo de datos sensibles en variables de entorno y listo. Regularmente esas variables de entorno las pongo en el virtuanenv cuando estoy trabajando en local y el producción dependiendo de como hagas deploy hay maneras sencillas de ponerlas.
Código Python:
Ver original# settings.py
import os
def get_env_variable(var_name):
""" Get the environment variable or return exception """
try:
return os.environ[var_name]
except KeyError:
error_msg = "Set the %s environment variable" % var_name
raise ImproperlyConfigured(error_msg)
# ...
SECRET_KEY = get_env_variable('SECRET_KEY')
Para los datos de la base de datos, también hago lo mismo pero usando
dj-database-url, muy sencillo de usar.
Y por ultimo también ajusto la variable DJANGO_SETTINGS_MODULE, que como puedes ver en manage.py es la que usa para ubicar tu settings.py. Y así poder tener diferentes settings.
Esto de configurar tu proyecto es casi todo un arte. En 2scoops of django, fácilmente te explican esto a detalle en los primeros 5 capítulos. (No es broma
http://twoscoopspress.org/products/t...-of-django-1-6 )