CommandError: è necessario impostare settings.ALLOWED_HOSTS se DEBUG è False


109

Uso Django 1.6.5 nel mio programma txsite con le impostazioni:

DEBUG = True

Ho impostato DEBUG su False, ma quando runserverviene visualizzato il seguente errore:

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

Ho provato a impostare ALLOWED_HOSTS = ['127.0.0.1', 'localhost']ma ottengo lo stesso errore.

qualcuno sa come capirlo?


Controlla se sotto hai definito di nuovo DEBUG = True. Potrebbe essere solo un brutto copypaste. Sono arrivato qui perché ho cancellato DEBUG = False per sbaglio
Tms91

Risposte:


154

Provare

ALLOWED_HOSTS = ['*']

Meno sicuro se non sei protetto da firewall o su una LAN pubblica, ma è quello che uso e funziona.

EDIT: È interessante notare che ho dovuto aggiungere questo ad alcuni dei miei progetti 1.8 anche quando DEBUG = True. Molto incerto perché.

EDIT: Ciò è dovuto a un aggiornamento di sicurezza di Django come menzionato nel mio commento.


Dove devo mettere il codice correttamente, per non sprecare il codice?
Малъ Скрылевъ

4
Fai grep ALLOWED_HOSTS . -rinella cartella principale del tuo progetto per trovare il file corretto. È settings.py in questo caso, ma grepping è sempre un buon consiglio.
Harald Nordgren

in quale file devo scrivere questo?
Mona Jalal

@MonaJalal per favore vedi il commento di Harald.
Kye Russell

1
Secondo [Django docs] [1], il comportamento di ALLOWED_HOSTSè stato modificato per affrontare un attacco di rebinding DNS e questo è probabilmente necessario in futuro. [1]: docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

La tua soluzione potrebbe essere quella di aggiungere l'IP originale e / o il nome host anche:

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

La condizione da soddisfare è che l'intestazione host (o X-Forwarded-Hostse USE_X_FORWARDED_HOSTè abilitata) deve corrispondere a uno dei valori in ALLOWED_HOSTS.


2
Dopo
averlo

28

Assicurati che non sia ridefinito di nuovo nella parte inferiore del file settings.py. Le impostazioni predefinite hanno:

ALLOWED_HOSTS = []


1
Il messaggio di errore allontana uno dalla ricerca di questo. Grazie per la pubblicazione.
scharfmn



1

Se lavori PyCharm, controlla il Environmental variablestuo Django server. È necessario specificare il module.settingsfile corretto


0

Provare

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = ['*']

Un valore di "*" corrisponderà a qualsiasi cosa; in questo caso sei responsabile di fornire la tua convalida dell'intestazione Host.


-8

Commenta semplicemente la riga: ALLOWED_HOSTS = [...]


Se commento, come saprai dove reindirizzare?
cdrrr
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.