Python

[Django] 'staticfiles' is not a registered tag library

[Django] 'staticfiles' is not a registered tag library

'staticfiles' is not a registered tag library

Djangoでこのようなエラーが発生した。
今回はこの 'staticfiles' エラーの原因と対処法を紹介する。


エラー現象

PythonのWEBフレームワークDjangoで以下のコマンドでWEBサービスを起動する。

python manage.py runserver

するとデフォルトでは http://localhost:8000/ にWEBサービスが立ち上がる。

そしてWEBブラウザでアクセスすると以下のエラーメッセージが表示される。

TemplateSyntaxError at /xxx/
'staticfiles' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_urls
cache
i18n
l10n
log
static
tz


エラー原因

エラーメッセージからある程度推測するに

SyntaxError なので構文のエラー

そして 'staticfiles' is not a registered tag library から 'staticfiles' が tag library に無いが無理に呼ぼうとしてエラーになっていると推測できる。


そしてDjangoの公式ドキュメントを見ると、'staticfiles' がDjango3.0で削除になっているのがわかる。

django.contrib.staticfiles.templatetags.staticfiles.static() is removed.


対処法

対処法としては 'staticfiles' の宣言を別の文言で置き換える。
'staticfiles'templates フォルダの中のhtmlファイルで宣言されていることが多いので、htmlファイルを開いて中の staticfilesstatic に置き換える。

before

{% load staticfiles %}


after

{% load static %}





まとめ

'staticfiles' is not a registered tag library
のエラー原因は Django3.0 で staticfiles が廃止されたこと。
代わりに static を宣言するとエラーを回避できる。





関連図書


コチラもオススメ

KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。

にほんブログ村 IT技術ブログへ

-Python
-, ,

Translate »

Copyright© ITips , 2020 All Rights Reserved.