我想使用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 ??
请帮忙, 微米。
答案 0 :(得分:4)
使用行动!我正在接受你已经创建了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数据一次允许多个报告,因为这似乎是合理的,但您可以明显地改变它,但是您可以这样做。就这么简单。另外check out the documentation了解更多细节