首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤django-import-export

过滤django-import-export
EN

Stack Overflow用户
提问于 2013-07-22 22:36:02
回答 3查看 6.8K关注 0票数 9

我想从我的模型创建csv文件,向django-import-export发送一个查询字典(过滤器,排除),然后从我的模型返回数据。

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

代码语言:javascript
复制
from import_export import resources
from finance.models import Price

class ExportData(resources.ModelResource):

    class Meta:
        model = Price
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-22 23:21:25

queryset传递给导出方法:

代码语言:javascript
复制
queryset = Price.objects.exclude(...)
data = ExportData().export(queryset)
data.csv
票数 12
EN

Stack Overflow用户

发布于 2019-07-17 02:27:34

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

代码语言:javascript
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2019-03-07 22:42:37

您可以在admin.py文件中覆盖resources.ModelResourceexport方法,以对管理员应用您的筛选器:

代码语言:javascript
复制
from import_export import resources
from finance.models import Price

class ExportData(resources.ModelResource):

    class Meta:
        model = Price

    def export(self, queryset=None, *args, **kwargs):
        # For example only export objects with ids in 1, 2, 3 and 4
        queryset = queryset and queryset.filter(id__in=[1, 2, 3, 4])
        return super(ExportData, self).export(queryset, *args, **kwargs)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17790326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档