Używam Django 1.6.5 w moim programie txsite z ustawieniami:
DEBUG = True
Ustawiłem DEBUG na False, ale kiedy runserver
otrzymuję 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źć?
Odpowiedzi:
Próbować
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.
źródło
grep ALLOWED_HOSTS . -ri
w folderze głównym projektu, aby znaleźć właściwy plik. W tym przypadku jest to settings.py, ale grepowanie jest zawsze dobrą radą.ALLOWED_HOSTS
został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-hostsRozwiązaniem może być również dodanie oryginalnego adresu IP i / lub nazwy hosta:
Warunkiem, który należy spełnić, jest to, że nagłówek hosta (lub
X-Forwarded-Host
jeśliUSE_X_FORWARDED_HOST
jest włączony) powinien być zgodny z jedną z wartości wALLOWED_HOSTS
.źródło
Upewnij się, że nie został ponownie zdefiniowany ponownie niżej w twoim settings.py. Domyślne ustawienia to:
ALLOWED_HOSTS = []
źródło
Z dokumentacji: https://docs.djangoproject.com/en/1.10/ref/settings/
A stąd: https://docs.djangoproject.com/en/1.10/ref/settings/#std:setting-ALLOWED_HOSTS
Używam czegoś takiego:
źródło
Po prostu zrób to:
To wystarczy.
źródło
Jeśli pracujesz
PyCharm
, sprawdźEnvironmental variables
swój plikDjango server
. Powinieneś określić właściwymodule.settings
plikźródło
Próbować
Wartość „*” będzie pasować do wszystkiego; w takim przypadku jesteś odpowiedzialny za zapewnienie własnej walidacji nagłówka hosta.
źródło
Po prostu zakomentuj linię: ALLOWED_HOSTS = [...]
źródło