-1

ユーザーが選択したdjangosの管理ページ内から強調表示されたレコードを印刷する必要があります。選択したレコードを印刷するアクションを追加しましたが、それ以上取得できないようです。

admin.py内の「print_member」アクション内から「hello world」pdfを作成するreportlabをテストしました。これは正常に実行されます。

私の質問は、その「印刷用に強調表示されたレコード選択」を取得し、そのクエリセット データを reportlab キャンバス呼び出しにフィードする方法です。

HttpResponse管理ページでレコードを選択してから、呼び出しの応答部分で実際にそのレコードを返す方法まで、djangoドキュメントのどこにも見つかりません。

私の現在のコードは次のとおりです。

  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 は次のとおりです。self.message_user( request, "%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() return response

4

1 に答える 1

0

私のアドバイスは、管理アクションを使用することです。 https://docs.djangoproject.com/en/dev/ref/contrib/admin/actions/

そこでクエリセットを取得します。次に、このクエリセットを反復処理して、必要なことを行います。

于 2013-09-16T12:41:05.803 に答える