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でのシェアOKです。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Django

Posted by ちこ