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.