9

我已经为我的项目实现了django-import-export

默认情况下,它为我提供了许多导入和导出的文件格式选项。

如何将文件格式限制为仅 CSV、XLS 和 XLSX?

在此处输入图像描述

4

2 回答 2

15

您可以覆盖的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()]
于 2017-08-29T07:14:30.170 回答
7

这是旧的,但对于那些可能想知道的人......我无法在上面发表评论,因为我没有“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
于 2019-11-27T23:23:14.340 回答