导出CSV文件功能!
# 定义一个导出功能的函数
def export_model_as_csv(modeladmin, request, queryset):
response = HttpResponse(content_type='test/csv',
headers={'Content-Disposition': 'attachment; filename=test_%s.csv' % (
datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),)
})
field_list = export_list
write = csv.writer(response)
write.writerow([
queryset.model._meta.get_field(f).verbose_name.title() for f in field_list
])
for obj in queryset:
csv_line_values = []
for field in field_list:
field_object = queryset.model._meta.get_field(field)
field_value = field_object.value_from_object(obj)
csv_line_values.append(field_value)
write.writerow(csv_line_values)
return response
# 定义按钮的名称
export_model_as_csv.short_description = u'导出为csv文件'
class CandidateAdmin(admin.ModelAdmin):
actions = [export_model_as_csv, ]
附上文档地址:https://docs.djangoproject.com/zh-hans/3.2/howto/outputting-csv/