我需要在djangos的管理页面中打印一个用户选择的突出显示的记录 . 我添加了打印所选记录的操作,但似乎无法再进一步了 .
我已经测试了reportlab在admin.py中的'print_member'动作中创建了一个'hello world'pdf,运行正常 .
我的问题是如何 grab “刚刚突出显示的记录选择打印”并将该查询集数据提供给reportlab canvas调用 .
我在django文档中找不到如何从管理页面中选择记录到在 HttpResponse
调用的响应部分中实际返回该记录 .
我目前的代码是:
def print_member( self, request, queryset ):
rows_updated = queryset.update( status = 'p' )
if rows_updated == 1:
message_bit = "member detail was collected successfully !!"
self.message_user( request, "%s detailed ready for printing!!" % message_bit )
response = HttpResponse( content_type = 'application/pdf' )
response[ 'Content-Disposition' ] = 'attachment; filename="member_label.pdf"'
p = canvas.Canvas( response )
details = list( request )
p.drawString( 100,100,detail_string )
p.showPage()
p.save()
return response
我的测试代码admin.py如下: - def print_member(self,request,queryset):rows_updated = queryset.update(status ='p')如果rows_updated == 1:message_bit =“成员详细信息已成功收集!!” self.message_user(请求,“%s详细准备打印!!”%message_bit)response = HttpResponse(content_type ='application / pdf')response ['Content-Disposition'] ='attachment; filename =“member_label.pdf”'p = canvas.Canvas(response)details = list(request)p.drawString(100,100,detail_string)p.showPage()p.save()返回响应
1 回答
我的建议是使用管理员行动 . https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/
在那里你会得到queryset . 然后只是迭代这个查询集并做任何你想做的事情 .