CommandError: debe establecer settings.ALLOWED_HOSTS si DEBUG es False


109

Utilizo Django 1.6.5 en mi programa txsite con la configuración:

DEBUG = True

Configuré DEBUG en False, pero cuando runserverobtengo el siguiente error:

CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False

Intenté configurar ALLOWED_HOSTS = ['127.0.0.1', 'localhost']pero me sale el mismo error.

¿Alguien sabe cómo resolverlo?


Compruebe si a continuación ha definido de nuevo DEBUG = True. Podría ser solo una mala copia. Llegué aquí porque cancelé DEBUG = False por accidente
Tms91

Respuestas:


153

Tratar

ALLOWED_HOSTS = ['*']

Menos seguro si no está protegido por un cortafuegos o en una LAN pública, pero es lo que uso y funciona.

EDITAR: Curiosamente, he estado necesitando agregar esto a algunos de mis proyectos 1.8 incluso cuando DEBUG = True. No estoy seguro de por qué.

EDITAR: Esto se debe a una actualización de seguridad de Django como se menciona en mi comentario.


¿Dónde debo poner el código correctamente para no desperdiciar el código?
Малъ Скрылевъ

4
Hazlo grep ALLOWED_HOSTS . -rien la carpeta principal de tu proyecto para encontrar el archivo correcto. En este caso es settings.py, pero grepping siempre es un buen consejo.
Harald Nordgren

¿en qué archivo debo escribir esto?
Mona Jalal

@MonaJalal, por favor vea el comentario de Harald.
Kye Russell

1
De acuerdo con [Django docs] [1], el comportamiento de ALLOWED_HOSTSha sido modificado para abordar un ataque de reenlace de DNS y esto probablemente sea necesario en el futuro. [1]: docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

Su solución podría ser agregar la IP original y / o el nombre de host también:

ALLOWED_HOSTS = ['localhost', '127.0.0.1', '111.222.333.444', 'mywebsite.com']

La condición que debe cumplirse es que el encabezado del host (o X-Forwarded-Hostsi USE_X_FORWARDED_HOSTestá habilitado) debe coincidir con uno de los valores en ALLOWED_HOSTS.


2
Después de configurar esto, el buen reinicio antiguo funcionó para mí ...
Razaman

28

Asegúrate de que no se vuelva a definir más abajo en tu settings.py. La configuración predeterminada tiene:

ALLOWED_HOSTS = []


1
El mensaje de error lleva a uno lejos de buscar esto. Gracias por publicar.
scharfmn



1

Si trabaja en PyCharm, verifique el Environmental variablespara su Django server. Debe especificar el module.settingsarchivo adecuado


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.