过滤django-import-export

时间:2013-07-22 14:36:02

标签: django django-models django-import-export

我想创建csv文件,我的模型将查询字典(过滤器排除)发送到django-import-export并从我的模型中返回数据。

使用流动代码我拥有所有模型字段,但我需要使用查询过滤它们。

from import_export import resources
from finance.models import Price

class ExportData(resources.ModelResource):

    class Meta:
        model = Price

4 个答案:

答案 0 :(得分:8)

queryset传递给导出方法:

queryset = Price.objects.exclude(...)
data = ExportData().export(queryset)
data.csv

答案 1 :(得分:0)

您可以在export文件中覆盖resources.ModelResource的{​​{1}}方法,以将过滤器应用于admin:

admin.py

答案 2 :(得分:0)

要仅过滤导出文件,而不过滤“管理”屏幕中的实际列表,可以覆盖get_export_queryset方法

from import_export import resources
from import_export.admin import ImportExportMixin

class ProductAdmin(ImportExportMixin, admin.ModelAdmin):
    resource_class = ProductResource

    # Override of ImportExportMixin.get_export_queryset
    # Filter export to exclude Products where is_active is false
    def get_export_queryset(self, request):
            return Product.objects.filter(is_active=True)

答案 3 :(得分:-1)

您可以覆盖get_queryset方法

    def get_queryset(self):
        return self._meta.model.objects.filter(is_staff=False)