参考ページ
- https://programmer-jobs.blogspot.com/2012/12/djangodjango-taggit.html
django-taggit
とdjango-taggit-templatetags
があればできるらしい。
実装した流れ
1 setting.py
を確認し、taggit
が導入されていることを確認(taggitは昔すでに導入済み)
ただ、taggit-templatetags
は導入されていなかった。
2 pip install django-taggit-templatetags
でインストール
3 setting.py
のINSTALLED_APPS
にtaggit-templatetags
を追加
INSTALLED_APPS = (
...
"taggit",
"taggit_templatetags",
...
)
4 pip freeze
でインストールしたtaggit-templatetags
のバージョンを確認
$ pip freeze
...
django-taggit-templatetags==0.2.5
...
5 requirements.txt
に4.で確認したバージョン情報を追記
...
django-taggit-templatetags==0.2.5
...
6 デプロイ
7 動作確認したらエラー発生
File "...templatetag_sugar/parser.py", line 5, in <module>
from django.db.models.loading import cache
No module named 'django.db.models.loading'
django.db.models.loading
がないらしい。
google先生に聞くと、django.db.models.loading
はDjango1.9
で廃止され、現在はdjango.app
を使う必要があるようだ。
https://stackoverflow.com/questions/36234635/what-is-the-equivalent-of-django-db-models-loading-get-model-in-django-1-9
8 tamplatetag_sugar/parser.py
を修正
- from django.db.models.loading import cache
+ from django.apps import apps
...
- return [(self, self.name, cache.get_model(app, model))]
+ return [(self, self.name, apps.get_model(app, model))]
9 動いた
雑記
GitHubを見ると、django-taggit-templatetagsは9年前から更新されてないようだった。
とりあえずググったらこれがトップにあったので使ったが、今はより適したパッケージがあるかもしれない。