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 solopython
. Ambos comandos iniciarán el intérprete interactivo, pero elmanage.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 shell
el comando se encarga de configurarDJANGO_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.