Django Admin管理后台导入CSV

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

python 复制代码
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

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

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

python 复制代码
{% 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 %}

显示效果如下:

相关推荐
Run_Teenage6 小时前
Linux:匿名管道(实现个进程池)和命名管道
linux·运维·服务器
BingoXXZ6 小时前
20260114Linux学习笔记
linux·服务器·笔记·学习
匀泪6 小时前
CE(SELinux)
运维·服务器
viqjeee7 小时前
Linux ALSA驱动详解
linux·运维·服务器·alsa
夜未央317 小时前
HTTPS 原理与 PHP 文件包含及伪协议详解
运维·服务器·安全·网络安全
Ulyanov7 小时前
PyVista与Tkinter桌面级3D可视化应用实战
开发语言·前端·python·3d·信息可视化·tkinter·gui开发
云川之下7 小时前
【网络】变长子网划分 (VLSM) 示例、点到点网络
运维·服务器·网络·变长子网
Dovis(誓平步青云)7 小时前
《epoll深度解析:从原理到使用,解锁Linux高并发I/O的核心能力(终篇)》
linux·运维·服务器·网络
不会kao代码的小王7 小时前
服务器、存储与网络核心知识全解析
运维·服务器·网络
子午7 小时前
【2026原创】文本情感识别系统~Python+深度学习+textCNN算法+舆情文本+模型训练
python·深度学习·算法