TECH I.S.

Django 詳細ページの追加


詳細のテンプレート

Webページの次のステップは詳細ページを追加することです。ここでは特定のメンバーに関する詳細を一覧表示できます。

まず、details.htmlという新しいテンプレートを作成します。

my_tennis_club/members/templates/details.html:
<!DOCTYPE html> <html> <body> <h1>{{ mymember.firstname }} {{ mymember.lastname }}</h1> <p>Phone: {{ mymember.phone }}</p> <p>Member since: {{ mymember.joined_date }}</p> <p>Back to<a href="/members">Members</a></p> </body> </html>

全てのメンバーをテンプレートに追加

all_members.htmlのリストをクリックできるようになり、クリックしたメンバーのIDが記載された詳細ページに移動します。
my_tennis_club/members/templates/all_members.html:
<!DOCTYPE html> <html> <body> <h1>Members</h1> <ul> {% for x in mymembers %} <li><a href="details/{{ x.id }}">{{ x.firstname }} {{ x.lastname }}</a></li> {% endfor %} </ul> </body> </html>

新しいビューを作成

次に、views.pyファイルに新しいビューを作成し、/details/URLへの受信リクエストを処理します。

my_tennis_club/members/views.py:
from django.http import HttpResponse from django.template import loader from .models import Member def members(request): mymembers = Member.objects.all().values() template = loader.get_template('all_members.html') context = { 'mymembers': mymembers, } return HttpResponse(template.render(context, request)) def details(request, id): mymember = Member.objects.get(id=id) template = loader.get_template('details.html') context = { 'mymember': mymember, } return HttpResponse(template.render(context, request))
detailsビューでは次のことが行われます。
  • 引数としてidを取得します。
  • idを使用して、Memberテーブル内の正しいレコードを見つけます。
  • details.htmlテンプレートを読み込みます。
  • メンバーを含むオブジェクトを作成します。
  • オブジェクトをテンプレートに送信します。
  • テンプレートによってレンダリングされるHTMLを出力します。

URLを追加する

ここで、/details/urlがidをパラメータとして正しいビューを指していることを確認する必要があります。

urls.pyファイルを開き、詳細ビューをurlpatternsリストに追加します。
my_tennis_club/members/urls.py:
from django.urls import path from . import views urlpatterns = [ path('members/', views.members, name='members'), path('members/details/<int:id>', views.details, name='details'), ]

実行例(開発準備中) »

自分のコンピューターですべての手順を実行した場合は、自分のブラウザーで127.0.0.1:8000/members/とすると結果を確認できます。

サーバーがダウンしている場合は、runserverコマンドを使用してサーバーを再起動する必要があります。

py manage.py runserver


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細