导出CSV文件功能!

    1. # 定义一个导出功能的函数
    2. def export_model_as_csv(modeladmin, request, queryset):
    3. response = HttpResponse(content_type='test/csv',
    4. headers={'Content-Disposition': 'attachment; filename=test_%s.csv' % (
    5. datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),)
    6. })
    7. field_list = export_list
    8. write = csv.writer(response)
    9. write.writerow([
    10. queryset.model._meta.get_field(f).verbose_name.title() for f in field_list
    11. ])
    12. for obj in queryset:
    13. csv_line_values = []
    14. for field in field_list:
    15. field_object = queryset.model._meta.get_field(field)
    16. field_value = field_object.value_from_object(obj)
    17. csv_line_values.append(field_value)
    18. write.writerow(csv_line_values)
    19. return response
    20. # 定义按钮的名称
    21. export_model_as_csv.short_description = u'导出为csv文件'
    22. class CandidateAdmin(admin.ModelAdmin):
    23. actions = [export_model_as_csv, ]

    附上文档地址:https://docs.djangoproject.com/zh-hans/3.2/howto/outputting-csv/