如何在 Python/Django 的“export”函数中使用先前定义的方法(funcs)?

格雷格·比亚洛瓦斯

一直在更新 Python/Django 项目,但我对此几乎一无所知。

目前我一直在尝试将当前视图(更改列表)导出到 CSV。列打印得很好,所有方法(函数)都按照它们应该/预期的方式显示所有信息。

当点击“导出”链接时,硬核开始,并且已经持续了数周。

最后一些东西开始显示在我的 .csv 文件中,但我仍然无法打印出循环中how_manypostal_code循环内的方法for elem in csv_elements:

下面是一个部分打印的类,它负责在屏幕上显示列,然后将它们导出到.csv文件中。我没有包括所有的,只是我个人认为重要的部分展示(当然我可能是非常错误的)。基本上一切export_this_list正常。

我应该使用什么语法才能在最后一个函数(方法)中重用已定义的函数(方法)?

class EnrolmentAdmin(TrainingAdminMixin, admin.ModelAdmin):
    """EnrolmentAdmin is used for registering Enrolment model."""

    form = EnrolmentForm
        .
          .
    list_display = ('date', 'training', 'postal_code', 'how_many')
        .
          .
    def postal_code(self, obj):
        return obj.invoice_data['postal_code']

    def how_many(self, obj):
        return obj.total_participants

    how_many.short_description = "How Many Persons"
        .
          .
    def export_this_list(self, request):
        """Generates participants list in Excel sheet."""
        filename = 'Orders.csv'
        csv_elements = Enrolment.objects.all()

        if not csv_elements:
            response = HttpResponseRedirect(
                reverse('admin:xxxxxx_training_change', args=[object_id]))
            msg = _('There are no orders yet.')
            messages.error(request, msg)
        else:
            response = HttpResponse(content_type='text/csv')
            response[
                'Content-Disposition'] = 'attachment; filename="{}"'.format(
                filename)
            #fieldnames = ['Date', 'Training', 'Postal code', 'How many']
            fieldnames = ['How many']

            sheet = csv.DictWriter(
                response, fieldnames=fieldnames, delimiter=';')
            sheet.writeheader()

            for elem in csv_elements:
                sheet.writerow({
                    'How many': self.how_many
                })

        return response
贾洪吉尔·拉赫莫诺夫

你应该像这样调用函数:self.how_many(obj)

在您的情况下,它将是:

for elem in csv_elements:
    sheet.writerow({
        'How many': self.how_many(elem)
    })

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在arraylist中使用先前定义的类

如何在xargs中使用定义的函数

如何对先前定义的对象使用准引用

如何在函数中使用append方法?

如何在用户定义的函数中使用AQL函数?

如何在函数式 API keras 中使用定义的函数

如何定义函数以及如何在html中使用每个方法

如何在javascript中使用先前函数的输出调用函数

如何在 LINQ 中使用自定义聚合函数?(不使用扩展方法)

如何在函数中使用用户定义类型?

如何在自定义函数中使用ddply + summary

如何在Excel中使用函数定义下标/上标?

如何在ezplot的函数定义中使用局部常量?

如何在 R.zipWith 中使用预定义函数

如何在此代码中使用自定义函数?

如何在JPA查询中使用自定义函数?

如何在用户定义的函数中使用LAG()?

如何在mxnet中使用自定义损失函数?

如何在mutate(dplyr)中使用自定义函数?

如何在ArrayFormula中使用自定义函数

如何在胡子PHP中使用用户定义的函数

如何在JavaScript中使用函数定义的变量

如何在.each(function)遍历中使用已经定义的函数

如何在 reducer 或自定义函数中使用 netinfo

如何在 ECS 和 bitbucket 管道部署中使用先前的任务定义

如何在setInterval函数中使用Math.random查找先前随机生成的数字?

如何在laravel中使用预定义的destroy方法

如何在AWS CDK中使用内在函数!sub方法?

如何在对象/方法对中使用回调函数