![[Django] 'staticfiles' is not a registered tag library](https://itips.krsw.biz/wp-content/uploads/2019/01/error_1548338613-1024x655.jpg)
'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ファイルを開いて中の staticfiles を static に置き換える。
before
{% load staticfiles %}
after
{% load static %}
参考
まとめ
'staticfiles' is not a registered tag library
のエラー原因は Django3.0 で staticfiles が廃止されたこと。
代わりに static を宣言するとエラーを回避できる。
あわせて読みたい



