CommandError: Musisz ustawić settings.ALLOWED_HOSTS, jeśli DEBUG ma wartość False


109

Używam Django 1.6.5 w moim programie txsite z ustawieniami:

DEBUG = True

Ustawiłem DEBUG na False, ale kiedy runserverotrzymuję następujący błąd:

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

Spróbowałem ustawić ALLOWED_HOSTS = ['127.0.0.1', 'localhost'] ale pojawia się ten sam błąd.

ktoś wie, jak to rozgryźć?


Sprawdź, czy poniżej zdefiniowałeś ponownie DEBUG = True. To może być po prostu zła kopia. Dotarłem tutaj, ponieważ anulowałem DEBUG = False przez przypadek
Tms91

Odpowiedzi:


154

Próbować

ALLOWED_HOSTS = ['*']

Mniej bezpieczne, jeśli nie masz wyłączonej zapory sieciowej lub w publicznej sieci LAN, ale tego używam i działa.

EDYCJA: Co ciekawe, musiałem dodać to do kilku moich projektów 1.8, nawet gdy DEBUG = True. Bardzo nie wiem, dlaczego.

EDYCJA: Jest to spowodowane aktualizacją zabezpieczeń Django, o której wspomniałem w moim komentarzu.


Gdzie poprawnie umieścić kod, aby go nie zmarnować?
Малъ Скрылевъ

4
Zrób grep ALLOWED_HOSTS . -riw folderze głównym projektu, aby znaleźć właściwy plik. W tym przypadku jest to settings.py, ale grepowanie jest zawsze dobrą radą.
Harald Nordgren,

w którym pliku mam to napisać?
Mona Jalal

@MonaJalal, zobacz komentarz Haralda.
Kye Russell

1
Według [Django docs] [1], zachowanie ALLOWED_HOSTSzostało zmodyfikowane w celu rozwiązania problemu z ponownym wiązaniem DNS i jest to prawdopodobnie konieczne w przyszłości. [1]: docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

Rozwiązaniem może być również dodanie oryginalnego adresu IP i / lub nazwy hosta:

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

Warunkiem, który należy spełnić, jest to, że nagłówek hosta (lub X-Forwarded-Hostjeśli USE_X_FORWARDED_HOSTjest włączony) powinien być zgodny z jedną z wartości w ALLOWED_HOSTS.


2
Po skonfigurowaniu tego, stary dobry restart działał dla mnie ...
Razaman

28

Upewnij się, że nie został ponownie zdefiniowany ponownie niżej w twoim settings.py. Domyślne ustawienia to:

ALLOWED_HOSTS = []


1
Komunikat o błędzie prowadzi nas od szukania tego. Dzięki za wysłanie wiadomości.
scharfmn



1

Jeśli pracujesz PyCharm, sprawdź Environmental variablesswój plik Django server. Powinieneś określić właściwy module.settingsplik


0

Próbować

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

ALLOWED_HOSTS = ['*']

Wartość „*” będzie pasować do wszystkiego; w takim przypadku jesteś odpowiedzialny za zapewnienie własnej walidacji nagłówka hosta.


-8

Po prostu zakomentuj linię: ALLOWED_HOSTS = [...]


Jeśli komentarz, skąd będziesz wiedzieć, gdzie przekierować?
cdrrr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.