Loading lesson path
The next step in our web page will be to add a Details page, where we can list more details about a specific member. Start by creating a new template called details.html
Formula
my_tennis_club/members/templates/details.html<!DOCTYPE html> <html>
<body>
<h1> </h1>
Formula
< p > Phone: </p >
< p > Member since: </p >Formula
< p > Back to < a href ="/members"> Members </a ></p ></body> </html>
The list in all_members.html should be clickable, and take you to the details page with the ID of the member you clicked on:
Formula
my_tennis_club/members/templates/all_members.html<!DOCTYPE html> <html> <body>
Formula
< h1 > Members </h1 ><ul>
{% for x in mymembers %}
<li><a href="details/"> </a></li>
{% endfor %}</ul>
</body> </html>
Then create a new view in the views.py file, that will deal with incoming requests to the /details/ url:
Formula
my_tennis_club/members/views.pyfrom django.http import HttpResponse from django.template import loader from .models import Member
def members(request):Formula
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):Formula
mymember = Member.objects.get(id = id)
template = loader.get_template('details.html')context = {
'mymember': mymember,
}
return HttpResponse(template.render(context, request))The details view does the following: Gets the id as an argument. Uses the id to locate the correct record in the Member table. loads the details.html template. Creates an object containing the member. Sends the object to the template. Outputs the HTML that is rendered by the template.
Now we need to make sure that the /details/ url points to the correct view, with id as a parameter. Open the urls.py file and add the details view to the urlpatterns list:
Formula
my_tennis_club/members/urls.pyfrom django.urls import path from . import views
urlpatterns = [
Formula
path('members/', views.members, name ='members'), path('members/details/< int:id >', views.details, name ='details'),] If you have followed all the steps on your own computer, you can see the result in your own browser:
Formula
127.0.0.1:8000/members/.
If the server is down, you have to start it again with the runserver command:python manage.py runserver