Django開発ではまったこと

はじめての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>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください