CommandError: u moet instellingen instellen.ALLOWED_HOSTS als DEBUG False is

Ik gebruik Django 1.6.5 met de instelling:

DEBUG = True

Als ik verander naar DEBUG = Falseen manage.py runserveruitvoer, krijg ik de volgende foutmelding:

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

Ik krijg dezelfde fout met de volgende instelling:

ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

Hoe kan ik dit oplossen?


Antwoord 1, autoriteit 100%

Probeer

ALLOWED_HOSTS = ['*']

Minder veilig als je geen firewall hebt buiten of op een openbaar LAN, maar dat is wat ik gebruik en het werkt.

EDIT:Interessant genoeg heb ik dit aan een paar van mijn 1.8-projecten moeten toevoegen, zelfs als DEBUG = True. Zeer onzeker waarom.

EDIT:dit komt door een Django-beveiligingsupdate zoals vermeld in mijn opmerking.


Antwoord 2, autoriteit 36%

Uw oplossing zou kunnen zijn om ook het originele IP-adres en/of de hostnaam toe te voegen:

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

De voorwaarde waaraan moet worden voldaan is dat de host-header (of X-Forwarded-Hostals USE_X_FORWARDED_HOSTis ingeschakeld) moet overeenkomen met een van de waarden in ALLOWED_HOSTS.


Antwoord 3, autoriteit 16%

Zorg ervoor dat het niet opnieuw wordt gedefinieerd, lager in je settings.py. De standaardinstellingen hebben:

ALLOWED_HOSTS = []


Antwoord 4, autoriteit 8%

Uit documentatie:
https://docs.djangoproject.com/en/1.10/ref/settings/

als DEBUG False is, moet u ook de ALLOWED_HOSTS correct instellen
instelling. Als u dit niet doet, worden alle verzoeken geretourneerd
als “Slecht verzoek (400)”.

En vanaf hier:
https://docs.djangoproject.com/en/1.10/ ref/settings/#std:setting-ALLOWED_HOSTS

Ik gebruik zoiets als dit:

ALLOWED_HOSTS = ['localhost', '127.0.0.1', 'www.mysite.com']

Antwoord 5, autoriteit 3%

Gebruik dit:

ALLOWED_HOSTS =  ['localhost', '127.0.0.1']

Antwoord 6

Als u in PyCharmwerkt, controleer dan de Environmental variablesvoor uw Django server. Je moet het juiste module.settingsbestand

. specificeren


Antwoord 7

Dit werkt voor mij:

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False
ALLOWED_HOSTS = ['localhost', '127.0.0.1']

Antwoord 8

Probeer

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

Een waarde van ‘*’ komt overeen met alles; in dit geval bent u verantwoordelijk voor het verstrekken van uw eigen validatie van de Host-header.


Antwoord 9

Ik heb deze cmderror ook ervaren. Nadat ik alle antwoorden hier had geprobeerd, kon ik het probleem nog steeds niet achterhalen. Dit is wat ik deed:

  1. Cd in de projectdirectory. bijv. cd project-dir
  2. Ik ben gemigreerd. bijvoorbeeld python manage.py migreren
  3. Ik heb een supergebruiker gemaakt. bijv. python manage.py createsuperuser
  4. Voer de gewenste informatie in, zoals gebruikersnaam, wachtwoord, e-mail, enz.
  5. U zou een “supergebruiker succesvol aangemaakt” antwoord moeten krijgen
  6. Voer nu de server uit. Bijvoorbeeld python manage.py runserver
  7. Klik op de weergegeven URL
  8. De URL in uw browser zou er als volgt uit moeten zien, 127.0.0.1:8000/Quit
  9. Bewerk nu de URL in uw browser naar 127.0.0.1:8000/admin
  10. U zou een beheerdersaanmeldingspagina moeten zien
  11. Log in met de supergebruikersinformatie die je eerder hebt aangemaakt
  12. U moet zijn aangemeld bij de Django-administratie
  13. Klik nu op “site bekijken” bovenaan de pagina
  14. U zou een pagina moeten zien die toont “de installatie is gelukt….. Debug = True”
  15. Voila! uw server is actief

Antwoord 10

Ik had ALLOW_HOSTS, INTERNAL_IPS en DEBUG=TRUE ingesteld

maar krijg nog steeds deze fout.
mijn probleem was dat ik een python-pakket had gemaakt met de naam
was ‘instellingen’ in de hoofdapp.
en die pakketnaam interfereerde met het bestand ‘settings.py’.


Antwoord 11

Geef gewoon commentaar op de regel: ALLOWED_HOSTS = […]

Other episodes