CommandError: Anda harus menyetel settings.ALLOWED_HOSTS jika DEBUG adalah False


109

Saya menggunakan Django 1.6.5 dalam program saya txsite dengan pengaturan:

DEBUG = True

Saya menyetel DEBUG ke False, tetapi ketika saya runserver, saya mendapatkan kesalahan berikut:

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

Saya mencoba mengatur ALLOWED_HOSTS = ['127.0.0.1', 'localhost']tetapi saya mendapatkan kesalahan yang sama.

ada yang tahu bagaimana mengetahuinya?


Periksa apakah di bawah Anda mendefinisikan lagi DEBUG = True. Ini bisa jadi hanya pasta yang buruk. Saya sampai di sini karena saya membatalkan DEBUG = False secara tidak sengaja
— Tms91

Jawaban:


154

Mencoba

ALLOWED_HOSTS = ['*']

Kurang aman jika Anda tidak menggunakan firewall atau LAN publik, tetapi itulah yang saya gunakan dan berfungsi.

EDIT: Cukup menarik, saya perlu menambahkan ini ke beberapa proyek 1,8 saya bahkan ketika DEBUG = True. Sangat tidak yakin mengapa.

EDIT: Ini karena pembaruan keamanan Django seperti yang disebutkan dalam komentar saya.


Di mana saya harus meletakkan kode dengan benar, agar tidak menyia-nyiakan kode?
— Малъ Скрылевъ

4
Lakukan grep ALLOWED_HOSTS . -ridi folder head proyek Anda untuk menemukan file yang benar. Ini settings.py dalam kasus ini, tetapi grepping selalu merupakan nasihat yang baik.
— Harald Nordgren

di file mana saya harus menulis ini?
— Mona Jalal

@MonaJalal silakan lihat komentar Harald.
— Kye Russell

1
Menurut [Django docs] [1], perilaku dari ALLOWED_HOSTStelah dimodifikasi untuk mengatasi serangan rebinding DNS dan ini mungkin diperlukan untuk selanjutnya. [1]: docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
— Kye Russell

55

Solusi Anda mungkin dengan menambahkan IP asli dan / atau nama host juga:

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

Kondisi yang harus dipenuhi adalah bahwa header host (atau X-Forwarded-Hostjika USE_X_FORWARDED_HOSTdiaktifkan) harus cocok dengan salah satu nilai di ALLOWED_HOSTS.


2
Setelah mengkonfigurasi ini, restart lama yang baik bekerja untuk saya ...
— Razaman

28

Pastikan itu tidak didefinisikan ulang lagi di bagian bawah settings.py Anda. Pengaturan default memiliki:

ALLOWED_HOSTS = []


1
Pesan kesalahan membuat orang menjauh dari mencari ini. Terima kasih telah memposting.
— scharfmn



1

Jika Anda bekerja di PyCharm, periksa Environmental variablesuntuk Anda Django server. Anda harus menentukan module.settingsfile yang tepat


0

Mencoba

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

ALLOWED_HOSTS = ['*']

Nilai '*' akan cocok dengan apa pun; dalam hal ini Anda bertanggung jawab untuk memberikan validasi Anda sendiri atas header Host.


-8

Cukup komentari baris ini: ALLOWED_HOSTS = [...]


Jika berkomentar, bagaimana mengetahui ke mana harus mengarahkan?
— cdrrr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.