How to Deep Link into Django Admin from a Template
Nathan Clement · September 8, 2026 · 3 min read
Nathan Clement · September 8, 2026 · 3 min read
A simple solution to a surprisingly poorly documented problem

Photo by Fahrul Azmi on Unsplash
Django Admin is an extremely powerful tool. It enables full CRUD control for configured Models across all your applications with very little effort.
As such, I found it very surprising how difficult it was to find documentation about how to deep link to Admin Views from a Django Template.
Documentation is spread across several different pages, and multiple StackOverflow questions. The most useful portions are here:
Without further ado, here is the solution, finally unified into a single article where it belongs!
In the table below, I have taken the Django documentation and added an example of what to pass into the url template given an app named myAppName and a model called Company
| URL name from Django Docs | Example for myAppName and Company Model |
|---------------------------------------------|---------------------------------------------|
| {{ app_label }}_{{ model_name }}_changelist | admin:myAppName_company_changelist |
| {{ app_label }}_{{ model_name }}_add | admin:myAppName_company_add |
| {{ app_label }}_{{ model_name }}_history | admin:myAppName_company_history object_id=1 |
| {{ app_label }}_{{ model_name }}_delete | admin:myAppName_company_delete object_id=1 |
| {{ app_label }}_{{ model_name }}_change | admin:myAppName_company_change object_id=1 |
Lets imagine that I have a Django application called myAppName and it has a Company model:
<a href="{% url 'admin:myAppName_company_changelist' %}">List</a>

Changelist view in Django Admin
<a href="{% url 'admin:myAppName_company_add' %}">Add</a>

Add view in Django Admin
<a href="{% url 'admin:myAppName_company_history' object_id=1 %}">
Change History
</a>

Change History view in Django Admin
<a href="{% url 'admin:myAppName_company_delete' object_id=1 %}">
Delete
</a>

Delete view in Django Admin
<a href="{% url 'admin:myAppName_company_change' object_id=1 %}">
Change
</a>

Change view in Django Admin
Viewing a list of Users in the Django Auth Application:
<a href="{% url 'admin:auth_user_changelist' %}">List of Users</a>
Here is a complete example of everything together:
{% extends 'myAppName/layout.html' %}
{% block content %}
<div>
<h1>Deep Admin Links</h1>
<p>Check out the example deep links below</p>
<h2>My App (All Examples)</h2>
<ul>
<li>
<div>View list of Companies in Django Admin for myAppName App</div>
<a href="{% url 'admin:myAppName_company_changelist' %}">http://localhost:8000/admin/myAppName/company/</a>
</li>
<li>
<div>Add a Company in Django Admin for myAppName App</div>
<a href="{% url 'admin:myAppName_company_add' %}">http://localhost:8000/admin/myAppName/company/add</a>
</li>
<li>
<div>View Change History for a Company in Django Admin for myAppName App</div>
<a href="{% url 'admin:myAppName_company_history' object_id=1 %}">http://localhost:8000/admin/myAppName/company/1/history/</a>
</li>
<li>
<div>Delete a Company in Django Admin for myAppName App</div>
<a href="{% url 'admin:myAppName_company_delete' object_id=1 %}">http://localhost:8000/admin/myAppName/company/1/delete/</a>
</li>
<li>
<div>Change a Company in Django Admin for myAppName App</div>
<a href="{% url 'admin:myAppName_company_change' object_id=1 %}">http://localhost:8000/admin/myAppName/company/1/change/</a>
</li>
</ul>
<h2>Auth App Example</h2>
<ul>
<li>
<div>View list of Users in Django Admin for Auth App</div>
<a href="{% url 'admin:auth_user_changelist' %}">http://localhost:8000/admin/auth/user/</a>
</li>
</ul>
{% endblock %}
Output of the template code above in a browser is pictured below:

Originally published on 2023-01-25 on Medium.