CommandError: Sie müssen settings.ALLOWED_HOSTS festlegen, wenn DEBUG False ist


109

Ich benutze Django 1.6.5 in meinem Programm txsite mit den Einstellungen:

DEBUG = True

Ich habe DEBUG auf False gesetzt, aber wenn ich es tue runserver, erhalte ich den folgenden Fehler:

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

Ich habe versucht einzustellen, ALLOWED_HOSTS = ['127.0.0.1', 'localhost']aber ich bekomme den gleichen Fehler.

weiß jemand, wie man es herausfindet?


Überprüfen Sie, ob Sie unten erneut DEBUG = True definiert haben. Es könnte nur eine schlechte Kopypaste sein. Ich bin hierher gekommen, weil ich DEBUG = False versehentlich abgesagt habe
Tms91

Antworten:


153

Versuchen

ALLOWED_HOSTS = ['*']

Weniger sicher, wenn Sie nicht vor oder in einem öffentlichen LAN durch eine Firewall geschützt sind, aber es ist das, was ich verwende und es funktioniert.

EDIT: Interessanterweise musste ich dies zu einigen meiner 1.8 Projekte hinzufügen, auch wenn DEBUG = True. Sehr unsicher warum.

BEARBEITEN: Dies ist auf ein Django-Sicherheitsupdate zurückzuführen, wie in meinem Kommentar erwähnt.


Wo soll ich den Code richtig platzieren, um den Code nicht zu verschwenden?
Малъ Скрылевъ

4
Gehen Sie grep ALLOWED_HOSTS . -riin den Kopfordner Ihres Projekts, um die richtige Datei zu finden. In diesem Fall ist settings.py, aber Grepping ist immer ein guter Rat.
Harald Nordgren

In welche Datei soll ich das schreiben?
Mona Jalal

@MonaJalal siehe Haralds Kommentar.
Kye Russell

1
Laut [Django docs] [1] wurde das Verhalten von ALLOWED_HOSTSgeändert, um einen DNS-Rebinding-Angriff zu bekämpfen, und dies ist wahrscheinlich in Zukunft erforderlich. [1]: docs.djangoproject.com/de/1.10/ref/settings/#allowed-hosts
Kye Russell

55

Ihre Lösung könnte darin bestehen, die ursprüngliche IP-Adresse und / oder den ursprünglichen Hostnamen hinzuzufügen:

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

Die Bedingung, die erfüllt sein muss, ist, dass der Host-Header (oder X-Forwarded-Hostfalls USE_X_FORWARDED_HOSTaktiviert) mit einem der Werte in übereinstimmt ALLOWED_HOSTS.


2
Nachdem ich dies konfiguriert hatte, funktionierte der gute alte Neustart für mich ...
Razaman

28

Stellen Sie sicher, dass es nicht weiter unten in Ihrer settings.py neu definiert wird. Die Standardeinstellungen haben:

ALLOWED_HOSTS = []


1
Die Fehlermeldung führt dazu, dass man nicht danach sucht. Danke fürs Schreiben.
scharfmn


4

Mach das einfach:

  ALLOWED_HOSTS =  ['localhost', '127.0.0.1']

Es wird den Trick machen.


1

Wenn Sie in arbeiten PyCharm, überprüfen Sie die Environmental variablesfür Ihre Django server. Sie sollten die richtige module.settingsDatei angeben


-8

Kommentieren Sie einfach die Zeile aus: ALLOWED_HOSTS = [...]


Wenn Kommentar, woher wissen Sie, wohin umgeleitet werden soll?
cdrrr
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.