DjangoのenvironでDEBUG=Falseにしているのに反映されない問題の対処法

今回はDjangoのenvironでDEBUG=FalseにしているのにDEBUGがTrueになってしまう問題の対処法についてご紹介いたします。



DjangoのenvironでDEBUG=Falseにしているのに反映されない問題の対処法

django-environを使ってsettings.pyをoverrideしたときにDEBUG=FalseでoverrideしているのにDEBUG=Trueになったままになってしまう事象にハマりました。

DEBUG=Falseにしているのに、adminで例の「Page not found (404) You’re seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.」の画面が出てしまいます。

そのときのソースコードは下記のような感じです。

結論としては、
DEBUG = env('DEBUG’)
ではなく
DEBUG = env.get_value('DEBUG’,bool)
とすべきでした。

DEBUG = env('DEBUG’)
にしてしまうと、str型のFalseが代入されてしまうのですね。
type()関数を使ってようやく分かりました。
str型の変数が代入されていたので、自動的にTrueになってしまっていたのです。

というわけで、型を指定できるenv.get_valueを使いましょう。
以下が修正したコードになります。

終わりに

今回はDjangoのenvironでDEBUG=FalseにしているのにDEBUGがTrueになってしまう問題の対処法についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いしております。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。

直接契約ができるフリーランスエージェント「エンハンス」を立ち上げました。
詳しくは下記LPをご参照ください。
https://enhance.decryption.co.jp/

Youtubeチャンネル開設いたしました。
チャンネル登録者10,000人を目指しているので、良いと思った方はチャンネル登録をお願いしたいです。
https://www.youtube.com/channel/UC219XhmSRxmXltTy6COxSMw






Django

Posted by ちこ