قالب جزئیات (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