قالب جزئیات (Details Template)
مرحله بعدی در صفحه وب ما اضافه کردن یک صفحه جزئیات است، جایی که می توانیم جزئیات بیشتری را در مورد یک عضو خاص لیست کنیم.
با ایجاد یک قالب (template) جدید به نام details.html شروع کنید:
my_tennis_club/members/templates/details.html:
{{ mymember.firstname }} {{ mymember.lastname }}
Phone: {{ mymember.phone }}
Member since: {{ mymember.joined_date }}
Back to Members
افزودن لینک در قالب all_members
لیست موجود در all_members.html باید قابل کلیک باشد و شما را با شناسه عضوی که روی آن کلیک کرده اید به صفحه جزئیات هدایت کند:
my_tennis_club/members/templates/all_members.html:
Members
{% for x in mymembers %}
- {{ x.firstname }} {{ x.lastname }}
{% endfor %}
ساخت view جدید
سپس یک view جدید در فایل
views.py ایجاد کنید که با درخواست های دریافتی به آدرس /details/ سر و کار دارد: 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))
view که تحت عنوان
details ساختیم، موارد زیر را انجام می دهد:
idرا به عنوان آرگومان دریافت می کند.- از
idبرای قرار دادن رکورد صحیح در جدول Member استفاده می کند. - قالب
details.htmlرا بارگیری می کند. - یک شیء حاوی member ایجاد می کند.
- شیء را به قالب (template) ارسال می کند.
- HTML رندر شده توسط template را خروجی می دهد.
افزودن URLs
اکنون باید مطمئن شویم که آدرسِ (url)
/details/ به view صحیح، بهمراه id به عنوان پارامتر اشاره می کند.فایل
urls.py را باز کنید و view با نام details را به لیست urlpatterns اضافه کنید:my_tennis_club/members/views.py:
from django.urls import path
from . import views
urlpatterns = [
path('members/', views.members, name='members'),
path('members/details/', views.details, name='details'),
]
اگر تمام مراحل را در رایانه شخصی خود انجام داده اید، می توانید نتیجه را در مرورگر خود مشاهده کنید: 127.0.0.1:8000/members/
سرور را با رفتن به پوشه /my_tennis_club/ و اجرای این دستور راه اندازی کنید:
py manage.py runserver