django detailページ書き方(views.py)
詳細ページの書き方は複数ある。
detailviewを使って速く簡単に作ってしまう方法やrenderを使ってどのようなプロセスで動くか分かる方法もある。
(参考)
ブラックボックス化を避けるためrenderをベースとして、データベースにアクセスするような動きを見せながらwebページを表示させる方法を書こうと思う。
from django.shortcuts import render from django.http import Http404 def produc_detail_page(request) qs = Product.objects.filter(id=pk) if qs.exist() and qs.count()==1: instance = qs.first else: raise Http404("product does not exist.") context = { "object" : instance} return render(request, "products/detail.html" , context)
コードの意味
全体:
データベースにidをもとに情報を検索して、それがある場合のみ、その情報を
表示させる。