class ArticleAdmin(admin.ModelAdmin):

    def render_change_form(self, request, context, *args, **kwargs):
        """We need to update the context to show the button."""
context.update({'show_save_and_copy': True})
return super().render_change_form(request, context, *args, **kwargs)

def response_post_save_change(self, request, obj):
    """This method is called by `self.changeform_view()` when the form
        was submitted successfully and should return an HttpResponse.
        """
if '_save_and_copy' in request.POST:
    new_obj = self.model.objects.create_from_existing(obj)
How do I add custom actions to a change model form in Django Admin?