Django Додати посилання на деталі
Шаблон деталей (подробиць)
Наступним кроком на нашій вебсторінці буде додавання сторінки з деталями (подробицями), де ми зможемо перерахувати додаткові відомості про певного учасника.
Почніть зі створення нового шаблону під назвою details.html
:
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.html
має бути доступним для натискання та спрямовувати вас на сторінку деталей з ідентифікатором учасника, якого ви натиснули:
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>
Створити нове представлення
Потім створіть нове представлення даних у файлі views.py
, яке оброблятиме вхідні запити до /details/
url:
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
робить наступне:
- Отримує
id
як аргумент. - Використовує
id
для пошуку правильного запису в таблиці учасників. - Завантажує шаблон
details.html
. - Створює об’єкт, що містить елемент.
- Надсилає об’єкт до шаблону.
- Виводить HTML, який відображається шаблоном.
Додати URL-адреси
Тепер нам потрібно переконатися, що URL-адреса /details/
вказує на правильне представлення з id
як параметр.
Відкрийте файл urls.py
та додайте представлення деталей до списку urlpatterns
:
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'),
]
Виконати приклад »
Якщо ви виконали всі кроки на своєму комп’ютері, ви можете побачити результат у своєму браузері: 127.0.0.1:8000/members/
.
Якщо сервер не працює, його потрібно запустити знову за допомогою команди runserver
:
py manage.py runserver