如何让不同的django管理员相互配合?

时间:2017-05-12 18:37:12

标签: python django django-admin mixins django-import-export

我正在尝试使用django-import-exportdjango-admin-sortable2,但它们似乎无法同时使用。

我第一次有这个:

from import_export.admin import ImportExportActionModelAdmin
class PageAdmin(ImportExportActionModelAdmin):

导入和导出都会按预期显示和运行。然后我添加了SortableAdminMixin

from import_export.admin import ImportExportActionModelAdmin
from adminsortable2.admin import SortableAdminMixin
class PageAdmin(SortableAdminMixin,ImportExportActionModelAdmin):

出现了可排序的功能,但这似乎与导入功能冲突,导入按钮消失了。我试过重新订购:

from import_export.admin import ImportExportActionModelAdmin
from adminsortable2.admin import SortableAdminMixin
class PageAdmin(SortableAdminMixin,ImportExportActionModelAdmin):

这次项目不再可排序,但导入按钮重新出现。我也尝试过分开导入和导出:

from import_export.admin import ExportActionModelAdmin, ImportMixin
from adminsortable2.admin import SortableAdminMixin
class PageAdmin(ImportMixin,SortableAdminMixin,ExportActionModelAdmin):

但无济于事。如何让这些管理混合使用起来很好?

每个mixin的功能:

SortableAdminMixin

def change_list_template(self):
def __init__(self, model, admin_site):
def _get_update_url_name(self):
def get_urls(self):
def get_actions(self, request):
def get_changelist(self, request, **kwargs):
def media(self):
def _add_reorder_method(self):
def update_order(self, request):
def save_model(self, request, obj, form, change):
def move_to_exact_page(self, request, queryset):
def move_to_back_page(self, request, queryset):
def move_to_forward_page(self, request, queryset):
def move_to_first_page(self, request, queryset):
def move_to_last_page(self, request, queryset):
def _get_order_direction(self, request):
def _move_item(self, request, startorder, endorder):
def get_extra_model_filters(self, request):
def get_max_order(self, request, obj=None):
def _bulk_move(self, request, queryset, method):
def changelist_view(self, request, extra_context=None):
def get_update_url(self, request):

ImportMixin

def get_skip_admin_log(self):
def get_tmp_storage_class(self):
def get_urls(self):
def get_resource_kwargs(self, request, *args, **kwargs):
def get_import_resource_kwargs(self, request, *args, **kwargs):
def get_resource_class(self):
def get_import_resource_class(self):
def get_import_formats(self):
def process_import(self, request, *args, **kwargs):
def process_dataset(self, dataset, confirm_form, request, *args, **kwargs):
def process_result(self, result, request):
def generate_log_entries(self, result, request):
def add_success_message(self, result, request):
def get_import_context_data(self, **kwargs):
def get_context_data(self, **kwargs):
def import_action(self, request, *args, **kwargs):

看起来唯一的常见功能是get_urls - 这可能是冲突的地方吗?

0 个答案:

没有答案