久方プログラミングネタ.先日,会社で「カエリタ……カエリタ……」ってぼやきながら仕事をしていたらGitHubからメールが来て,要約すると「お前のレポジトリのDjangoのバージョン,古いからバージョンアップのプルリク出しとくぞ」というものだった.
見たところ,2.2.8より前の一部バージョンで脆弱性があったらしく,Pipfileでそれを検知したのかバージョンアップ用のプルリクが自動で飛んできていた.すげえなGitHub.
で,お遊びでデプロイしているものとは言っても,脆弱性があるのは流石にまずいのでアップデート対応をした……したのだが,素直にそのプルリクを飲むのではなく,自分でブランチを切ってアップデートしてみたら思わぬところで詰まったのでその話.
Sponsored Link
バージョンアップにご用心
GitHubからのプルリクのバージョンは2.2.8へのアップデート.
ところが,自分で
pipenv update --outdated pipenv update
したらDjangoのバージョンが3.0になった.ただしこのときはまだ気づいていない.
一応ローカルで動作確認しとくか,ということで
python manage.py runserver
したところ,帰ってきたのは
translation.E004) You have provided a value for the LANGUAGE_CODE setting that is not in the LANGUAGES setting
なるエラー.言語コードなんていじってないんだけどなあ……と思いつつ,settings.pyを見ると
LANGUAGE_CODE = 'ja-JP'
と書いてある.これ(ja-JP)がLANGUAGES settingにないんじゃい,と怒られてるらしい.
ぐぐってたらstackoverflowのこれを見つけた.Django 3.0以降,Djangoのglobal_settings.pyにあるコードを厳密に指定しないとエラーが出るらしいとのこと.んで,その設定を見に行ってみると日本語の設定は"ja-JP"ではなく"ja"だった.
考えてみるとJPは国コードで言語コードじゃないんだよなあ,という当たり前の話.2.xではエラーにならなかったが,単純に設定をミスってたらしいというオチ.なんとなく設定するんじゃなく,こういうところも参照しながらやらないとなあ,と思った.
0 件のコメント:
コメントを投稿