CommandError:DEBUGがFalseの場合、settings.ALLOWED_HOSTSを設定する必要があります


109

プログラムtxsiteで次の設定でDjango 1.6.5を使用します。

DEBUG = True

DEBUGをFalseに設定しましたが、するとrunserver、次のエラーが発生します。

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

設定を試みましたALLOWED_HOSTS = ['127.0.0.1', 'localhost']が、同じエラーが発生します。

誰でもそれを理解する方法を知っていますか?


以下でDEBUG = Trueを再定義したかどうかを確認します。それは単に悪いコピーペーストかもしれません。DEBUG = Falseを誤ってキャンセルしたため、ここに
到着しました

回答:


153

試す

ALLOWED_HOSTS = ['*']

ファイアウォールで保護されていない場合、またはパブリックLANを使用していない場合は安全性は低くなりますが、私が使用しているものであり、機能します。

編集:興味深いことに、私は1.8のプロジェクトのいくつかにこれを追加する必要がありましたDEBUG = True。理由はよくわかりません。

編集:これは私のコメントで述べたようにDjangoセキュリティアップデートによるものです。


コードを無駄にしないために、どこにコードを正しく配置すればよいですか?
МалъСкрылевъ

4
やるgrep ALLOWED_HOSTS . -ri正しいファイルを見つけるためにあなたのプロジェクトの頭のフォルダに。この場合はsettings.pyですが、greppingは常に良いアドバイスです。
Harald Nordgren

これをどのファイルに書き込む必要がありますか?
Mona Jalal

@MonaJalalはHaraldのコメントを参照してください。
Kye Russell

1
[Django docs] [1]によればALLOWED_HOSTS、DNSリバインド攻撃に対処するためにの動作が変更されており、これはおそらく今後必要になるでしょう。[1]:docs.djangoproject.com/en/1.10/ref/settings/#allowed-hosts
Kye Russell

55

あなたの解決策は、元のIPやホスト名を追加することかもしれません:

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

満たされる条件は、ホストヘッダー(または有効化されているX-Forwarded-Host場合USE_X_FORWARDED_HOST)がの値のいずれかと一致する必要があることですALLOWED_HOSTS


2
これを構成した後、古き良き再起動は私のために働きました...
Razaman

28

settings.pyの下位で再定義されていないことを確認してください。デフォルト設定は次のとおりです。

ALLOWED_HOSTS = []


1
エラーmsgは、これを探すことから遠ざけます。投稿いただきありがとうございます。
scharfmn

15

ドキュメントから:https : //docs.djangoproject.com/en/1.10/ref/settings/

DEBUGがFalseの場合、ALLOWED_HOSTS設定も適切に設定する必要があります。そうしないと、すべてのリクエストが「Bad Request(400)」として返されます。

そしてここから:https : //docs.djangoproject.com/en/1.10/ref/settings/#std : setting-ALLOWED_HOSTS

私はこのようなものを使用しています:

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


1

で作業する場合はPyCharm、を確認しEnvironmental variablesてくださいDjango server。適切なmodule.settingsファイルを指定する必要があります


-8

行をコメントアウトするだけです:ALLOWED_HOSTS = [...]


コメントの場合、リダイレクト先はどのようにしてわかりますか?
cdrrr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.