CommandError: você deve definir settings.ALLOWED_HOSTS se DEBUG for False


109

Eu uso Django 1.6.5 no meu txsite do programa com as configurações:

DEBUG = True

Defino DEBUG como False, mas quando runserverrecebo o seguinte erro:

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

Tentei configurar ALLOWED_HOSTS = ['127.0.0.1', 'localhost']mas recebo o mesmo erro.

alguém sabe como descobrir?


Verifique se abaixo você definiu novamente DEBUG = True. Pode ser apenas um copypaste ruim. Eu cheguei aqui porque cancelei DEBUG = False por acidente
Tms91

Respostas:


153

Experimentar

ALLOWED_HOSTS = ['*']

Menos seguro se você não estiver protegido por firewall ou em uma LAN pública, mas é o que eu uso e funciona.

EDIT: Curiosamente, tenho necessidade de adicionar isso a alguns dos meus projetos 1.8, mesmo quando DEBUG = True. Muito inseguro por quê.

EDIT: Isso é devido a uma atualização de segurança do Django, conforme mencionado em meu comentário.


Onde devo colocar o código corretamente, para não desperdiçá-lo?
Малъ Скрылевъ

4
Faça grep ALLOWED_HOSTS . -rina pasta head do seu projeto para encontrar o arquivo correto. Nesse caso, é settings.py, mas grepping é sempre um bom conselho.
Harald Nordgren

em qual arquivo devo escrever isso?
Mona Jalal

@MonaJalal veja o comentário de Harald.
Kye Russell

1
De acordo com [Django docs] [1], o comportamento do ALLOWED_HOSTSfoi modificado para lidar com um ataque de religação de DNS e isso provavelmente será necessário daqui para frente. [1]: docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

Sua solução pode ser adicionar o IP original e / ou nome de host também:

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

A condição a ser satisfeita é que o cabeçalho do host (ou X-Forwarded-Hostse USE_X_FORWARDED_HOSTestiver ativado) deve corresponder a um dos valores em ALLOWED_HOSTS.


2
Depois de configurar isso, a boa e velha reinicialização funcionou para mim ...
Razaman

28

Certifique-se de que ele não seja redefinido mais abaixo em settings.py. As configurações padrão têm:

ALLOWED_HOSTS = []


1
A mensagem de erro desvia a pessoa de procurar por isso. Obrigado por publicar.
scharfmn


4

Basta fazer isso:

  ALLOWED_HOSTS =  ['localhost', '127.0.0.1']

Isso vai resolver o problema.


1

Se você trabalha em PyCharm, verifique o Environmental variablespara o seu Django server. Você deve especificar o module.settingsarquivo adequado


-8

Basta comentar a linha: ALLOWED_HOSTS = [...]


Se comentar, como saberá para onde redirecionar?
cdrrr
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.