はじめてのDjango開発で、ひっかかったところ、はまったところの記録。
1)拡張テンプレート側のstaticのロードエラー
ベース側で「{% load static %}」しているので、なんとなく拡張側は要らないような気でいたら、以下エラーが出た。
Invalid block tag on line **: 'static', expected 'endblock'. Did you forget to register or load this tag?
拡張ファイル側でも「static」を使う場合は、「{% load static %}」する必要がある。
※「{{ block.super() }} 」した場合に、その中で「static」を使われている場合も、「{% load static %}」する必要がある。
2)Django Debug Toolbarが表示されない
Visual Studio からDjangoの開発用サーバーで実行すると、ツールバーが表示されない。Chromeのエラーを見ると、toolbar.jsの読み込みがはじかれている。
Failed to load module script: The server responded with a non-JavaScript MIME type of "text/plain".
とりあえず、setting.pyに以下を追加することで解決。
# For Debug Toolbar if DEBUG: import mimetypes mimetypes.add_type("text/javascript", ".js", True)
3)Visual Studioのサンプルの文字コード
サンプルのDjangoのWebアプリのテンプレートの文字コードがSJISのようで、修正しながら、テンプレート内に日本語を書くと、実行時にエラーになった。他のエディタで一度UTF-8で一度保存してから修正する必要あり。
4)アドオンhumanizeのintcomma
自分のプロジェクトの言語設定の問題か、桁区切りをつけるintcommaがうまく動作しなかった。
https://docs.djangoproject.com/ja/3.1/ref/contrib/humanize/#intcomma
ソースを見ると、第二引数で言語設定を無視できるよう。
(GitHubソース)contrib/humanize/templatetags/humanize.py
以下のように、Falseを設定することで回避できた。
<div class="text-right>{{ report.count_visit|intcomma:False }}</div>