0

我想使用 reportlab 直接从我的模型管理员将我的模型导出为 pdf 文件。

class InvoiceItem(models.Model):
    invoice_number = models.CharField(max_length=50)
    invoice_date = models.DateField('Invoice date')
    invoice_sent = models.BooleanField()
    invoice_paid = models.BooleanField()

我的模型管理员:

class InvoiceItemAdmin(admin.ModelAdmin):
    def pdf_version(self, obj):
    ## how to call my reportlab view here ??

请帮忙,M。

4

1 回答 1

5

使用行动!我认为您已经创建了您的 reportlab 视图,而您只想使用模型项重定向到它。所以创建一个这样的函数(在任何类之外):

def pdf_version(modeladmin, request, queryset):
    url = '/your_pdf_url/?pks=' + ','.join([q.pk for q in queryset])
    HttpResponseRedirect(url)

然后在管理员中:

class InvoiceItemAdmin(admin.ModelAdmin):
    actions = [pdf_version]

在示例中,我使用 GET 数据一次允许多个报告,因为这看起来很合理,但是您显然可以随意更改此设置。就这么简单。另请查看文档以获取更多详细信息

于 2013-10-06T22:14:44.807 回答