如何在Django管理混合中合并功能?

2024-05-16 20:04:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用两个Django插件,django-import-exportdjango-safedelete。它们都在Django管理下拉列表中提供了特性。比如:

django进出口 enter image description here

django安全删除enter image description here

有没有一个简单的方法来组合这两个插件的特性,只需对代码进行最小的更改?你知道吗

编辑添加代码

admin.py

from safedelete.admin import SafeDeleteAdmin
from import_export.admin import ExportActionMixin

class SiteEntityAdmin(ExportActionMixin, SafeDeleteAdmin):
    readonly_fields=('created_at', 'updated_at', 'created_by', 'updated_by', 'identifier')

ExportActionMixinSafeDeleteAdmin的继承顺序决定出现哪个下拉选项。你知道吗


Tags: django代码fromimport插件adminexport特性
2条回答

这不起作用的原因是^{} [GitHub]将操作列表定义为:

class ExportActionMixin(ExportMixin):

    # …

    actions = admin.ModelAdmin.actions + [export_admin_action]

因此,这里不考虑基类的操作。你知道吗

您可以通过以下方法解决此问题:

from safedelete.admin import SafeDeleteAdmin
from import_export.admin import ExportActionMixin

class SiteEntityAdmin(ExportActionMixin, SafeDeleteAdmin):
    readonly_fields=('created_at', 'updated_at', 'created_by', 'updated_by', 'identifier')
    actions = (*ExportActionMixin.actions, *SafeDeleteAdmin.actions)

我可以通过直接调用模块中的操作来添加管理操作。修订代码:

from safedelete.admin import SafeDeleteAdmin
from import_export.admin import ExportActionMixin

class SiteEntityAdmin(ExportActionMixin, SafeDeleteAdmin):
    readonly_fields=('created_at', 'updated_at', 'created_by', 'updated_by', 'identifier')

    actions = [ExportActionMixin.export_admin_action, SafeDeleteAdmin.undelete_selected]

相关问题 更多 >