Tafsilotlar sahifasiga havola qo‘shish


ULASHISH

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:

  • id qiymatini argument sifatida qabul qiladi.
  • Member jadvalidan kerakli yozuvni topish uchun id qiymatidan foydalanadi.
  • details.html shablonini 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!