Details Template

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:


{{ mymember.firstname }} {{ mymember.lastname }}

Phone: {{ }}

Member since: {{ mymember.joined_date }}

Back to Members

Add Link in all-members Template

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:



Create new View

Then create a new view in the file, that will deal with incoming requests to the /details/ url:


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))

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.

Add URLs

Now we need to make sure that the /details/ url points to the correct view, with id as a parameter.

Open the file and add the details view to the urlpatterns list:


from django.urls import path
from . import views

urlpatterns = [
    path('members/', views.members, name='members'),
    path('members/details/', views.details, name='details'),

If you have followed all the steps on your own computer, you can see the result in your own browser: .

If the server is down, you have to start it again with the runserver command:

py runserver

Add Link to Details