Tafsilotlar sahifasiga havola qo‘shish
Tafsilotlar shabloni
Veb-sahifamizdagi keyingi qadam — muayyan a’zo haqida batafsil ma’lumot ko‘rsatiladigan tafsilotlar (Details) sahifasini qo‘shish.
Avval details.html nomli yangi shablon yarating:
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 shabloniga havola qo‘shish
all_members.html faylidagi ro‘yxat bosiladigan bo‘lishi va siz bosgan a’zoning ID’si bilan tafsilotlar sahifasiga olib borishi kerak:
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>
Yangi view yaratish
So‘ngra views.py faylida
/details/ URL’iga keladigan so‘rovlarni qayta ishlaydigan yangi view yarating:
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 view’i quyidagilarni bajaradi:
idqiymatini argument sifatida qabul qiladi.- Member jadvalidan kerakli yozuvni topish uchun
idqiymatidan foydalanadi. details.htmlshablonini yuklaydi.- A’zo ma’lumotlarini o‘z ichiga olgan obyekt yaratadi.
- Obyektni shablonga yuboradi.
- Shablon tomonidan render qilingan HTML’ni chiqaradi.
URL’larni qo‘shish
Endi /details/ URL’i id parametri bilan to‘g‘ri view’ga yo‘naltirilishini ta’minlashimiz kerak.
urls.py faylini oching va details view’ini urlpatterns ro‘yxatiga qo‘shing:
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'),
]
Misolni ishga tushirish »
Agar barcha qadamlarni o‘z kompyuteringizda bajargan bo‘lsangiz, natijani o‘z brauzeringizda ko‘rishingiz mumkin: 127.0.0.1:8000/members/.
Agar server to‘xtagan bo‘lsa, uni runserver buyrug‘i bilan qayta ishga tushirishingiz kerak:
python manage.py runserver
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
