输出django更改管理页面中突出显示的记录

时间:2013-09-16 12:34:47

标签: python django

我需要在用户选择的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()        回复

1 个答案:

答案 0 :(得分:0)

我的建议是使用管理员操作。 https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/

你会得到queryset。然后只需迭代这个查询集并做任何你想做的事。