当前位置: 首页 > article >正文

Django Admin管理后台导入CSV

修改管理模型,代码如下:

class CsvImportForm(forms.Form):
    csv_file = forms.FileField()
@admin.register(Hero)
class HeroAdmin(admin.ModelAdmin, ExportCsvMixin):
    ...
    change_list_template = "entities/heroes_changelist.html"
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [
            ...
            path('import-csv/', self.import_csv),
        ]
        return my_urls + urls
    def import_csv(self, request):
        if request.method == "POST":
            csv_file = request.FILES["csv_file"]
            reader = csv.reader(csv_file)
            # Create Hero objects from passed in data
            # ...
            self.message_user(request, "Your csv file has been imported")
            return redirect("..")
        form = CsvImportForm()
        payload = {"form": form}
        return render(
            request, "admin/csv_form.html", payload
        )

创建模板文件templates/entities/heroes_changelist.html

{% extends 'admin/change_list.html' %}
{% block object-tools %}
    <a href="import-csv/">Import CSV</a>
    <br />
    {{ block.super }}
{% endblock %}

创建模板文件templates/admin/csv_form.html

{% extends 'admin/base.html' %}
{% block content %}
    <div>
        <form action="." method="POST" enctype="multipart/form-data">
            {{ form.as_p }}
            {% csrf_token %}
                <button type="submit">Upload CSV</button>
        </form>
    </div>
    <br />
{% endblock %}

显示效果如下:


http://www.kler.cn/a/289477.html

相关文章:

  • 字节跳动Android面试题汇总及参考答案(80+面试题,持续更新)
  • 陪诊问诊APP开发实战:基于互联网医院系统源码的搭建详解
  • 【121. 买卖股票的最佳时机】——贪心算法/动态规划
  • 【专题】计算机网络之网络层
  • WebRTC API分析
  • 轻松上手:使用Docker部署Java服务
  • 中秋之美——html5+css+js制作中秋网页
  • 解释 CountDownLatch 和 CyclicBarrier 的作用,并给出一个实际的使用场景来说明如何使用这两个类来协调多线程任务?
  • PMP–一、二、三模、冲刺、必刷–分类–14.敏捷–技巧--累积流图
  • 探索英文字体设计的奥秘,解读风格与实用技巧
  • web api 文件上传下载帮助类
  • 生成模型之生成器
  • 使用 Rust 和 Bevy 创建你的第一个三维渲染应用程序
  • 阿尔茨海默病症识别+图像识别Python+人工智能+深度学习+TensorFlow+机器学习+卷积神经网络算法
  • 如何打造一个智能化的远程在线考试系统?
  • 《第二十七章 IO 流 - 字符流》
  • 使用 docker 部署 kvm 图形化管理工具 WebVirtMgr
  • 【鸿蒙HarmonyOS NEXT】List组件的使用
  • 集成电路学习:什么是ARM先进精简指令集计算机
  • Altium Designer爬虫工具/网页信息获取工具
  • 深度学习基础--模型拟合
  • 新版某数字壳脱壳,过frida检测,及重打包
  • uniapp 自定义微信小程序 tabBar 导航栏
  • P1045 麦森数
  • sql92语句与sql99语法的区别
  • MySQL——隔离级别及解决方案