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?

Rancho
fuente
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.

Kye Russell
fuente
¿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.

yeaske
fuente
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 = []

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

Solo haz esto:

  ALLOWED_HOSTS =  ['localhost', '127.0.0.1']

Hará el truco.

Fahadi Muhumuza
fuente
1

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

Daniel Chepenko
fuente
-8

Simplemente comente la línea: ALLOWED_HOSTS = [...]

usuario3797826
fuente
Si comenta, ¿cómo sabrá a dónde redireccionar?
cdrrr