edité mi archivo settings.py
con un bloque condicional, así:
import os # If needed.
if os.environ.get('DJANGO_DEBUG'):
print("Debug is enabled.")
DEBUG = True
# When not specified, ALLOW_HOSTS defaults to:
# ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
else:
DEBUG = False
ALLOWED_HOSTS = ["*"]
A continuación, ejecutar el servidor haciendo pasar la variable ambiental DJANGO_DEBUG=1
. Se puede nombrar a la variable de cualquier cosa que desee, siempre y cuando sean compatibles:
DJANGO_DEBUG=1 python -Wall manage.py runserver
Omitir esa variable ambiental al llamar manage.py
desactivar depuración (porque ajustarlo a cualquier valor, incluyendo 0
se sigue que sea fiel a la Python código)
actualización:. Un comentarista indicó que la directiva ALLOWED_HOSTS
se ignora cuando DEBUG
es True
. Esto solo es cierto en las versiones anteriores de Django. El comportamiento actual es respetar ALLOWED_HOSTS
o predeterminado a las direcciones del host local si no se especifica cuando DEBUG
está habilitado. Mi respuesta se actualiza para reflejar esto como una corrección menor.
Esto se obtienen de los Django documentation:
Cuando DEBUG es verdadera y allowed_hosts está vacía, el anfitrión es validado contra [ 'localhost', '127.0.0.1', '[:: 1]' ]
Además, se establece que el comportamiento de sus comentarios sobre actualmente caduca en unos pocos grandes líneas de versión:
en versiones anteriores, ALLOWED_HOST S no fue verificado si DEBUG = True. Esto también se cambió en Django 1.10.3, 1.9.11 y 1.8.16 para evitar un ataque de recombinación de DNS .
lo suficientemente cerca de un solo comando, gracias! – Ted
el env var 'DJANGO_SETTINGS_MODULE' se puede utilizar para dirigir un entorno en un archivo de configuración particular. – ThorSummoner