افزودن لینک به جزئیات (Add Link to Details)
اینجا لینک هر عضو را به «صفحه جزئیات» وصل می کنیم. «جزئیات (Details)» یعنی صفحه ای که اطلاعات کامل همان عضو را نشان می دهد. سپس مسیرها را تنظیم می کنیم و نتیجه را می بینیم.
ساخت قالب جزئیات (details.html)
یک قالب بساز که اطلاعات یک عضو را نشان دهد. از «متغیر قالب (Template Variable)» برای نمایش نام ها استفاده کن.
<!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>
نکته: «متغیر قالب» همان داده ارسال شده از ویو است.
قابل کلیک کردنِ لیست اعضا
در لیست اعضا، هر آیتم باید لینک جزئیات خودش را داشته باشد. لینک شامل شناسه عضو است.
<!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>
ساخت ویو جزئیات
یک ویو جدید بنویس. «ویو (View)» درخواست را می گیرد و داده صحیح را به قالب می فرستد.
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))
نکته: اگر شناسه پیدا نشد، بعداً هندل خطا را اضافه کن.
افزودن مسیرها در urls.py
برای رسیدن به ویو، باید مسیر درست تعریف شود. «الگو مسیر (URL Pattern)» آدرس را به ویو وصل می کند.
from django.urls import path
from . import views
urlpatterns = [
path('members/', views.members, name='members'),
path('members/details/<int:id>', views.details, name='details'),
]
گام های اجرای سریع
- قالب
details.htmlرا بساز. - لینک هر عضو را در لیست بگذار.
- ویو
detailsرا بنویس. - مسیر
/members/details/<id>را اضافه کن. - سرور را اجرا کن و نتیجه را ببین.
python manage.py runserver
جمع بندی سریع
- قالب جزئیات را با متغیرها بساز.
- لیست اعضا را لینک دار کن.
- ویو جزئیات را پیاده سازی کن.
- مسیرها را دقیق تعریف کن.
برای مرور پیش نیاز، بخش آماده سازی قالب و ویو را ببین. سپس برای ساخت اسکلت تکرارپذیر، به قالب مادر برو.