Django框架下如何实现单条Lead模型数据导出为CSV文件
Django单条Lead数据导出CSV实现方案
1. 新增URL路由
在你的应用对应的urls.py文件中添加以下路由,用于接收要导出的Lead主键ID:
from django.urls import path from . import views urlpatterns = [ # 保留原有其他路由 path('export_lead/<int:lead_id>/', views.export_single_lead, name='export_single_lead'), ]
2. 编写单条导出视图函数
在views.py中添加如下导出逻辑,和你原有批量导出逻辑基本一致,仅修改数据查询范围为指定ID的单条数据即可:
import csv from django.http import HttpResponse from django.shortcuts import get_object_or_404 from .models import Lead def export_single_lead(request, lead_id): # 查询指定ID的Lead,数据不存在则返回404 lead = get_object_or_404(Lead, id=lead_id) response = HttpResponse(content_type='text/csv') # 文件名可使用Lead姓名命名,避免重名更易识别 response['Content-Disposition'] = f'attachment; filename="{lead.first_name}_{lead.last_name}_Lead.csv"' writer = csv.writer(response) # 表头可按需调整,需和下方取值字段一一对应 writer.writerow(['First Name', 'Last Name', 'Email', 'Phone', 'City']) # 写入单条数据,values_list里的字段可按需增删,和表头对应即可 writer.writerow(Lead.objects.filter(id=lead_id).values_list('first_name', 'last_name', 'email', 'phone', 'city').first()) return response
使用方式
需要导出某条Lead数据时,直接访问对应路径/export_lead/[对应Lead的ID]/即可,也可以在Lead详情页添加导出按钮,绑定路径为{% url 'export_single_lead' lead.id %}。如果需要导出更多字段,只要同步修改表头列表和values_list里的模型字段名即可。
内容的提问来源于stack exchange,提问作者Danny
相关产品推荐
相关产品推荐

