[обновление]
Я неправильно понял вопрос, мой первоначальный ответ относится только к приложению администратора, которое имеет встроенный механизм расширения шаблонов.Для другого приложения, в котором отсутствует такой механизм, я бы просто раскошелил оригинальные шаблоны вместо того, чтобы возиться с пользовательскими загрузчиками шаблонов, как рекомендует выбранный ответ.Если вы беспокоитесь о разветвлении, вы также можете реализовать механизм расширения и внести свой вклад в первоначальный проект, если считаете, что он того стоит.
[оригинальный ответ]
Прямо изfine manual : Из-за модульной конструкции шаблонов администратора обычно нет необходимости и нецелесообразно заменять весь шаблон.Почти всегда лучше переопределить только тот раздел шаблона, который необходимо изменить.
Чтобы продолжить приведенный выше пример, мы хотим добавить новую ссылку рядом с инструментом «История» для модели страницы.Посмотрев на change_form.html, мы определим, что нам нужно только переопределить блок object-tools.Поэтому вот наш новый change_form.html:
{% extends "admin/change_form.html" %}
{% load i18n %}
{% block object-tools %}
{% if change %}{% if not is_popup %}
<ul class="object-tools">
<li><a href="history/" class="historylink">{% trans "History" %}</a></li>
<li><a href="mylink/" class="historylink">My Link</a></li>
{% if has_absolute_url %}
<li><a href="../../../r/{{ content_type_id }}/{{ object_id }}/" class="viewsitelink">
{% trans "View on site" %}</a>
</li>
{% endif%}
</ul>
{% endif %}{% endif %}
{% endblock %}
И это все!Если мы поместим этот файл в каталог templates / admin / my_app, наша ссылка появится в форме изменения каждой модели.