Ссылка в заголовке раздела.

Задача.

Необходимо переопледелить шаблон и добавить кнопку.

start page

документация

Смотрим какие есть шаблоны в базовом классе.

# Custom templates (designed to be over-ridden in subclasses)
add_form_template = None
change_form_template = None
change_list_template = None
delete_confirmation_template = None
delete_selected_confirmation_template = None
object_history_template = None
popup_response_template = None

Меняем.

...
class NewsLetterAdmin(admin.ModelAdmin):
    ...
    change_list_template = 'admin/newsletter_list.html'

Заберем шаблон из окружения venv/lib/python3.6/site-packages/grappelli/templates/admin/change_list.html.

Добавим в него кнопку.

...

{% block object-tools %}
    <ul class="grp-object-tools">
        <li><a href="{% url 'admin:create_news_letter' %}" class="grp-add-link grp-state-focus">Создать письмо</a></li>

...

Создаем роут под урл и функцию-обработчик.

def create_news_letter(self, request):
    messages.success(request, 'Письмо создал')
    return redirect(reverse('admin:course_newsletter_changelist'))

def get_urls(self):
    from django.urls import path
    urls = super(NewsLetterAdmin, self).get_urls()
    myurl = [

        path('create/letter', self.admin_site.admin_view(self.create_news_letter), name="create_news_letter")
    ]
    return myurl+urls