【问题标题】:Exporting CSV from Django/Graphql从 Django/Graphql 导出 CSV
【发布时间】:2020-03-08 16:05:26
【问题描述】:

我需要从我的数据库数据生成一个 csv 文件/数据并将其输出到我的前端。

我找到了这个并按照说明操作:https://docs.djangoproject.com/en/2.2/howto/outputting-csv/

但是,我使用的是 graphql 和石墨烯。上面的说明没有说明应该以什么格式返回输出。当我返回普通的String 时,我得到的只是"<HttpResponse status_code=200, \"text/csv\">"

代码示例:

class Query:
    users_csv = graphene.String()
    ...

    @classmethod
    @login_required
    def resolve_users_csv(cls, obj, info):
        response = HttpResponse(content_type="text/csv")
        writer = csv.writer(response)

        header = [
            "EmployeeEmail",
            "TeamMemberName",
            "PhoneNumber",
            "MobileNumber",
            "IsAdmin",
        ]
        content = []
        for u in User.objects.filter(customer=info.context.user.customer):
            content.append(
                [
                    str(u.email) if u.email else "",
                    str(u.get_full_name()),
                    str(u.phone_number) if u.phone_number else "",
                    str(u.mobile_number) if u.mobile_number else "",
                    str(u.is_admin),
                ]
            )

        writer.writerow(header)
        writer.writerows(content)
        return response

非常感谢任何帮助或指点...

【问题讨论】:

标签: django graphql export-to-csv


【解决方案1】:

您还需要返回文件,即 csv。下面的行将使其可下载。

response['Content-Disposition'] = 'attachment; filename="yourfilename.csv"'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多