Djangoチュートリアル(6) テンプレート
index()
を書き換えるところからスタート
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
output = ', '.join([q.question_text for q in latest_question_list])
return HttpResponse(output)
意味はわかる
質問がカンマ区切りで表示されるだけ
ここでいよいよテンプレートの登場
polls/templates/polls/index.html
やけにディレクトリが深いけれどもここはこうするものらしい
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p> No polls are available.</p>
{% endif %}
index()
はこうなる
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
template = loader.get_template('polls/index.html')
context = {
'latest_question_list': latest_question_list
}
return HttpResponse(template.render(context, request))
テンプレートやpythonのコード、ときどき打ち間違えてるけど
ブラウザ上で懇切丁寧にエラーや環境が表示されるのでわかりやすい
助かる
変数名を打ち間違えたらしれっとエラーにもならず表示されたけど
django.shortcuts.render()
を使って短くできる
def index(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = { 'latest_question_list': latest_question_list}
return render(request, 'polls/index.html', context)