You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django 2.0.5中限制django-import-export导出格式为xls和csv

限制django-import-export导出格式为XLS和CSV(Django 2.0.5)

要在Django 2.0.5配合最新版django-import-export时,把导出格式限制为仅XLS和CSV,操作起来很直观,主要通过自定义Admin类或导出视图的格式列表实现,下面分两种常用场景说明:

场景1:在Django Admin中限制导出格式

这是最常用的场景,只需在你的ModelAdmin类里指定export_formats属性即可:

  1. 先导入需要的格式类:
from import_export.admin import ImportExportModelAdmin
from import_export.formats import base_formats
  1. 定义你的ModelAdmin类,覆盖export_formats属性:
class YourModelAdmin(ImportExportModelAdmin):
    # 这里放你的其他Admin配置,比如list_display、search_fields等
    list_display = ('id', 'name', 'created_at')
    
    # 只保留CSV和XLS导出格式
    export_formats = [
        base_formats.CSV,
        base_formats.XLS,
    ]
  1. 最后注册你的Model和Admin:
from django.contrib import admin
from .models import YourModel

admin.site.register(YourModel, YourModelAdmin)

配置完成后,Admin页面的导出下拉菜单就只会显示CSV和XLS两个选项了。

场景2:自定义导出视图时限制格式

如果是自己编写导出视图而非使用Admin集成的功能,只需重写ExportView的get_export_formats方法:

  1. 导入必要的类:
from import_export.views import ExportView
from import_export.formats import base_formats
from .resources import YourModelResource
  1. 自定义导出视图:
class CustomExportView(ExportView):
    resource_class = YourModelResource
    
    def get_export_formats(self):
        # 仅返回允许的格式
        return [
            base_formats.CSV,
            base_formats.XLS,
        ]
  1. 在urls.py中配置这个视图:
from django.urls import path
from .views import CustomExportView

urlpatterns = [
    # 其他路由...
    path('export/', CustomExportView.as_view(), name='custom_export'),
]

注意事项

  • 确保安装XLS格式依赖:XLS格式需要xlwt库,执行pip install xlwt即可(针对Django 2.0.5,xlwt是更稳妥的选择)。
  • 若你的资源类(Resource)有自定义导出逻辑,不会影响这个配置,格式限制是全局作用于导出选项的。

内容的提问来源于stack exchange,提问作者ketimaBU

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:46:32