Best way for add custom process and form in administration

Considering two models Picture and CategoryPicture.
In the django administration, I want to add a custom form to send a zip file for bulk picture import.
What is the best way to add a custom link in the administration menu ?
How do I catch that admin url and create a custom process?

It looks like you can create a custom ModelAdmin class and override one or more of the get_urls, get_form, get_changelist, and the add_view methods. (I’ve never done anything like this, so I’m not sure what might be required as opposed to just being “nice to have”. Your process would then be in the view invoked by the menu entry.

Thanks KenWhitesell
I have try something like that :

class MassImport(models.Model):
    class Meta:
        verbose_name_plural = 'Import de masse'
        app_label = 'front'

def my_custom_view(request):
    templates = loader.get_template('admin/massimport.html')
    context = {
        'test': True,
    return HttpResponse(templates.render(context, request))

class MassImportAdmin(admin.ModelAdmin):
    model = MassImport

    def get_urls(self):
        view_name = '{}_{}_add'.format(self.model._meta.app_label, self.model._meta.model_name)

        return [
            path('import-de-masse/', my_custom_view, name=view_name),
        ], MassImportAdmin)

But the url generated is : localhost/admin/front/massimport/import-de-masse/
instead of : localhost/admin/front/import-de-masse/
and i can acces to this url even if i’m not logged on the back

massimport.html is like that :

{% extends 'admin/base.html' %}
{% load i18n admin_urls static admin_list %}

{% block content %}
{% endblock %}

But the back doesn’t load correctly