最終結果:
@Aidan Doherty の answerから着想を得て、 custom を拡張するVersionAdmin
, ImportMixin
,ExportMixin
サブクラスの組み合わせである新しいクラスを作成しましたchange_list_template
。
外観は次のとおりです。
ImportExportVersionModelAdmin.py
:
from import_export.admin import ImportMixin, ExportMixin
from reversion.admin import VersionAdmin
class ImportExportVersionModelAdmin(ImportMixin, ExportMixin, VersionAdmin):
"""
Import, export and Version admin.
Fixes missing link in change_list admin view :)
"""
#: template for change_list view
change_list_template = 'change_list_import_export_version.html'
templates/change_list_import_export_version.html
:
{% extends "admin/import_export/change_list.html" %}
{% load i18n admin_urls %}
{% block object-tools-items %}
<li><a href="import/" class="import_link">{% trans "Import" %}</a></li>
<li><a href="export/{{ cl.get_query_string }}" class="export_link">{% trans "Export" %}</a></li>
{% if not is_popup and has_add_permission and has_change_permission %}
<li><a href="{% url opts|admin_urlname:'recoverlist' %}" class="recoverlink">{% blocktrans with cl.opts.verbose_name_plural|escape as name %}Recover deleted {{name}}{% endblocktrans %}</a></li>
{% endif %}
{{ block.super }}
{% endblock %}
このようにして、次のように使用できます。
class SiteAdmin(ImportExportVersionModelAdmin):
pass
admin.site.register(Site, SiteAdmin)
これは、 import_export の admin.py ImportExportMixinとその change_list_import_export.html テンプレートから直接インスピレーションを得て、 reversion のテンプレートと組み合わせたものです。
注: このソリューションを複数のサブクラスに適用できます :)