ユーザーが選択した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