Djangoでpjaxするdjango-pjaxをTemplateViewで試してみた
以前django-pjaxを触ってみたエントリを書いたんですが
Djangoでpjaxするdjango-pjaxを試してみた
http://d.hatena.ne.jp/yuheiomori0718/20120831/1346420984
そのとき、こんなviewを書いてました
from django.template.response import TemplateResponse from djpjax import pjax @pjax() def index(request): return TemplateResponse(request, 'app/index.html', {}) @pjax() def about(request): return TemplateResponse(request, 'app/about.html', {}) @pjax() def contact(request): return TemplateResponse(request, 'app/contact.html', {})
静的なhtmlを返しているだけですので、TemplateViewが使えますね
これで同じ動きになります。pjaxデコレータのかまし方がポイントですね
urls.py
# url(r'^$', 'app.views.index'), # url(r'^about$', 'app.views.about'), # url(r'^contact$', 'app.views.contact'), url(r'^$', pjax()(TemplateView.as_view(template_name='app/index.html'))), url(r'^about$', pjax()(TemplateView.as_view(template_name='app/about.html'))), url(r'^contact$', pjax()(TemplateView.as_view(template_name='app/contact.html')))
Class-Based Viewとか汎用viewは、こんな感じでコードの記述量が減らせるので、ちゃんと使えるようになろうと思います。