Django импорт-экспорт используют как ExportActionModelAdmin, так и ExportMixin вместе

В admin.py, используя либо:

from django.contrib import admin
from import_export.admin import ExportActionModelAdmin, ExportMixin

class BookAdmin(ExportActionModelAdmin, admin.ModelAdmin):
    # stuff

или

from django.contrib import admin
from import_export.admin import ExportActionModelAdmin, ExportMixin

class BookAdmin(ExportMixin, admin.ModelAdmin):
    # stuff
<
from django.contrib import admin
from import_export.admin import ExportActionModelAdmin, ExportMixin

class BookAdmin(ExportActionModelAdmin, ExportMixin, admin.ModelAdmin):
    # stuff
< < <

Вам нужно быть внимательным, чтобы понять, что такое подкласс, а что такое миксин.

ExportActionModelAdmin является подклассом ModelAdmin, поэтому вы можете использовать его следующим образом:

class BookAdmin(ExportActionModelAdmin):

ExportMixin - это миксин. Он не предоставляет все атрибуты ModelAdmin, поэтому его нужно использовать в комбинации.

class BookAdmin(ExportMixin, admin.ModelAdmin):

Чтобы сделать то, что вы просите, и предполагая, что они совместимы, вам понадобится:

class BookAdmin(ExportMixin, ExportActionModelAdmin):
class BookAdmin(ExportActionModelAdmin, admin.ModelAdmin):
    change_list_template = 'admin/import_export/change_list_export.html'

Установите значение changle_list_template. В классе ExportActionModelAdmin оно установлено None. Из-за этого кнопка экспорта не отображается.

Вам не нужно наследовать класс ExportMixin mixin. Потому что класс ExportActionModelAdmin уже наследует его.

Вернуться на верх