You can use {% url %}
tag to add links to each page. The tag handles reverse URL resolution – it specifies URLs by using the URL name defined in urls.py.
This approach enables you to separate the actual URLs used in browsers from the URL data internally handled in the Django system. When communicating with browsers, urls.py converts the internally used URL names into actual URLs.
Creating links to the list page or the create page is simple as they don't have additional variables for specifying an exact page. You can simply use the URL name from the urls.py file, as shown in the main figure.
On the other hand, the detail page, update page, and delete page require more specific information as those pages are linked to each record object. For example, each detail page is defined by the id
, which is also set as the primary key in the database. To create a link to each detail page, you need to pass pk
information as shown in the main figure.
We'll add links with the {% url %}
tags in this practice.
For efficient operation, prepare a list of links to each page using a text file (any memo app) so that you can copy and paste each code into related document sections.
Use the URL names from the urls.py file under the employee_learning directory.
link to list page
<a href="{% url 'course_list'%}">List</a>
link to detail page
<a href="{% url 'course_detail' course.pk%}">Go Detail</a>
link to create page
<a href="{% url 'course_create'%}">Create</a>
link to update page
<a href="{% url 'course_update' object.pk%}">Update</a>
link to delete page
<a href="{% url 'course_delete' object.pk%}">Delete</a>
Before pasting the code for links, you need to decide where you want to put them. As the list page and create page are not record-object-specific, you can add the link on any page; however, to make a link to a specific detail, update or delete page, you need to manage how to set a link to them.
Here is the design of the link structure that we apply in this practice.
Based on the link structure design, copy and paste the code.
Paste the code in yellow below in the create page template. Do the same for other templates.
<a href="{% url 'course_list'%}">List</a>
<a href="{% url 'course_create'%}">Create</a>
<h1> CREATE Page </h1>
<form method="post"> {% csrf_token %}
:
Link to the detail page in the list page template
Paste the code in yellow below in the list page template. Make sure that you put the code between the for
statement. If you paste the code outside of the for
statement, the value for pk
won't be correctly defined.
<h1>LIST Page</h1>
{% for course in object_list %}
<p> {{ course.title|upper }}</p>
<p> {{ course.get_level_display }}</p>
<a href="{% url 'course_detail' course.pk%}">Go Detail</a>
<hr>
{% endfor %}
Links to the update and delete page in the detail page template
Paste the code in yellow below in the detail page template.
:
<h1> DETAIL Page </h1>
:
{% endfor %}</ul>
<a href="{% url 'course_update' object.pk%}">Update</a>
<a href="{% url 'course_delete' object.pk%}">Delete</a>or %}
Access to localhost:8000/employee-learning/course-list/. You can see that all the links are in place.
You can use {% url %}
tag to add links to each page. The tag handles reverse URL resolution – it specifies URLs by using the URL name defined in urls.py.
This approach enables you to separate the actual URLs used in browsers from the URL data internally handled in the Django system. When communicating with browsers, urls.py converts the internally used URL names into actual URLs.
Creating links to the list page or the create page is simple as they don't have additional variables for specifying an exact page. You can simply use the URL name from the urls.py file, as shown in the main figure.
On the other hand, the detail page, update page, and delete page require more specific information as those pages are linked to each record object. For example, each detail page is defined by the id
, which is also set as the primary key in the database. To create a link to each detail page, you need to pass pk
information as shown in the main figure.
We'll add links with the {% url %}
tags in this practice.
For efficient operation, prepare a list of links to each page using a text file (any memo app) so that you can copy and paste each code into related document sections.
Use the URL names from the urls.py file under the employee_learning directory.
link to list page
<a href="{% url 'course_list'%}">List</a>
link to detail page
<a href="{% url 'course_detail' course.pk%}">Go Detail</a>
link to create page
<a href="{% url 'course_create'%}">Create</a>
link to update page
<a href="{% url 'course_update' object.pk%}">Update</a>
link to delete page
<a href="{% url 'course_delete' object.pk%}">Delete</a>
Before pasting the code for links, you need to decide where you want to put them. As the list page and create page are not record-object-specific, you can add the link on any page; however, to make a link to a specific detail, update or delete page, you need to manage how to set a link to them.
Here is the design of the link structure that we apply in this practice.
Based on the link structure design, copy and paste the code.
Paste the code in yellow below in the create page template. Do the same for other templates.
<a href="{% url 'course_list'%}">List</a>
<a href="{% url 'course_create'%}">Create</a>
<h1> CREATE Page </h1>
<form method="post"> {% csrf_token %}
:
Link to the detail page in the list page template
Paste the code in yellow below in the list page template. Make sure that you put the code between the for
statement. If you paste the code outside of the for
statement, the value for pk
won't be correctly defined.
<h1>LIST Page</h1>
{% for course in object_list %}
<p> {{ course.title|upper }}</p>
<p> {{ course.get_level_display }}</p>
<a href="{% url 'course_detail' course.pk%}">Go Detail</a>
<hr>
{% endfor %}
Links to the update and delete page in the detail page template
Paste the code in yellow below in the detail page template.
:
<h1> DETAIL Page </h1>
:
{% endfor %}</ul>
<a href="{% url 'course_update' object.pk%}">Update</a>
<a href="{% url 'course_delete' object.pk%}">Delete</a>or %}
Access to localhost:8000/employee-learning/course-list/. You can see that all the links are in place.