Saltar al contenido

Configuración incorrecta: debe definir la variable de entorno DJANGO_SETTINGS_MODULE o llamar a settings.configure() antes de acceder a la configuración

Posterior a consultar con expertos en el tema, programadores de varias áreas y maestros hemos dado con la respuesta al dilema y la dejamos plasmada en esta publicación.

Solución:

Supuse que el DJANGO_SETTINGS_MODULE tenía que configurarse de alguna manera, así que miré la documentación (enlace actualizado) y encontré:

export DJANGO_SETTINGS_MODULE=mysite.settings

Aunque eso no es suficiente si está ejecutando un servidor en heroku, también debe especificarlo allí. Como esto:

heroku config:set DJANGO_SETTINGS_MODULE=mysite.settings --account  

En mi caso específico ejecuté estos dos y todo salió bien:

export DJANGO_SETTINGS_MODULE=nirla.settings
heroku config:set DJANGO_SETTINGS_MODULE=nirla.settings --account personal

Editar

También me gustaría señalar que debe volver a hacer esto cada vez que cierre o reinicie su entorno virtual. En su lugar, debe automatizar el proceso yendo a venv/bin/activate y agregando la línea: set DJANGO_SETTINGS_MODULE=mysite.settings al final del código. A partir de ahora, cada vez que actives el entorno virtual, estarás utilizando la configuración de esa aplicación.

Desde La guía definitiva de Django: desarrollo web bien hecho:

Si ha usado Python antes, es posible que se pregunte por qué estamos ejecutando python manage.py shell en lugar de solo python. Ambos comandos iniciarán el intérprete interactivo, pero el manage.py shell el comando tiene uno key diferencia: antes de iniciar el intérprete, le dice a Django qué archivo de configuración usar.

Caso de uso: muchas partes de Django, incluido el sistema de plantillas, dependen de su configuración y no podrá usarlas a menos que el marco sepa qué configuración usar.

Si tiene curiosidad, así es como funciona detrás de escena. Django busca una variable de entorno llamada DJANGO_SETTINGS_MODULE, que debe establecerse en la ruta de importación de su configuración.py. Por ejemplo, DJANGO_SETTINGS_MODULE podría estar configurado para 'mysite.settings'asumiendo que mysite está en su ruta de Python.

cuando corres python manage.py shellel comando se encarga de configurar DJANGO_SETTINGS_MODULE para ti.**

Django necesita la configuración específica de su aplicación. Como ya está dentro de tu manage.py, solo usa eso. La solución más rápida, pero quizás temporal, es:

python manage.py shell

Reseñas y calificaciones

Si sostienes algún recelo y capacidad de acrecentar nuestro crónica eres capaz de escribir una explicación y con mucho placer lo analizaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *