我已经为我的项目实现了django-import-export。
默认情况下,它为我提供了许多导入和导出的文件格式选项。
如何将文件格式限制为仅 CSV、XLS 和 XLSX?
您可以覆盖的get_export_formats()
方法ExportMixin
:
from import_export.formats import base_formats
class MyAdmin(ExportMixin):
# your normal stuff
def get_export_formats(self):
"""
Returns available export formats.
"""
formats = (
base_formats.CSV,
base_formats.XLS,
base_formats.XLSX,
base_formats.TSV,
base_formats.ODS,
base_formats.JSON,
base_formats.YAML,
base_formats.HTML,
)
return [f for f in formats if f().can_export()]
这是旧的,但对于那些可能想知道的人......我无法在上面发表评论,因为我没有“50 声望”。为了扩展上面 Burhan Khalid 的回答,如果您想将这些格式限制(或 ExportMixin 的任何覆盖方法应用于多个管理类),您可以在管理中创建一个抽象基类,然后将该类用于您想要的类喜欢保留那些覆盖。
from import_export.formats import base_formats
# use for all admins that are admin.ModelAdmin and use ExportMixin
class ExportMixinAdmin(ExportMixin, admin.ModelAdmin):
# your normal stuff
def get_export_formats(self):
formats = (
base_formats.CSV,
base_formats.XLS,
base_formats.XLSX,
)
return [f for f in formats if f().can_export()]
class Meta:
abstract = True
class ModelOneAdmin(ExportMixinAdmin):
# your normal stuff here
class ModelTwoAdmin(ExportMixinAdmin):
# your normal stuff here