我需要在用户选择的djangos管理页面中打印突出显示的记录。 我添加了打印所选记录的操作,但似乎无法再进一步了。
我测试了reportlab在admin.py&中的'print_member'动作中创建了一个'hello world'pdf运行正常。
我的问题是如何抓住“刚刚突出显示的记录选择打印”并将该查询集数据提供给reportlab画布调用。
我无法在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'] ='附件;文件名= “member_label.pdf”” p = canvas.Canvas(响应) details = list(request) p.drawString(100,100,detail_string) p.showPage() p.save() 回复
答案 0 :(得分:0)
我的建议是使用管理员操作。 https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/
你会得到queryset。然后只需迭代这个查询集并做任何你想做的事。