xadmin后台 导入 excel 功能拓展

新建 excel 文件

 在 xadmin 的 plugins 下添加一个 excel.py

# _*_ coding:utf-8 _*_
__author__ = "yangtuo"
__date__ = "2019/4/3 21:12"

import xadmin
from xadmin.views import BaseAdminPlugin, ListAdminView
from django.template import loader


# excel 导入
class ListImportExcelPlugin(BaseAdminPlugin):
    import_excel = False

    # 入口函数, 通过此属性来指定此字段是否加载此字段
    def init_request(self, *args, **kwargs):
        return bool(self.import_excel)

    # 如果加载, 则执行此函数添加一个 导入 字段
    def block_top_toolbar(self, context, nodes):
        nodes.append(
            loader.render_to_string('xadmin/excel/model_list.top_toolbar.import.html', context_instance=context))


xadmin.site.register_plugin(ListImportExcelPlugin, ListAdminView)

在 xadmin 中注册

 让后注册在 xadmin/plugins/__init__.py

相关字段展示处理

coursesadminx.py 文件操作

通过此字段进行处理

设置为 True 表示可以添加 导入字段

import_excel = True

导入逻辑

导入逻辑处理 在相关的 class 中重写 post 方法

    def post(self, request, *args, **kwargs):
        #  导入逻辑
        if 'excel' in request.FILES:
            pass  # 此处是一系列的操作接口, 通过  request.FILES 拿到数据随意操作
        return super(CourseAdmin, self).post(request, args, kwargs)  # 此返回值必须是这样

展示效果

原文地址:https://www.cnblogs.com/shijieli/p/10651714.html