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.