3
我已经花了一天的时间在这个问题上没有成功,所以帮助,将不胜感激。django:服务动态(reportlab)PNG模板
我使用ReportLab的,并成功地用它呈现给浏览器生成图形这个tutorial:
d = MyBarChartDrawing()
#extract the request params of interest.
#I suggest having a default for everything.
if 'height' in request:
d.height = int(request['height'])
if 'width' in request:
d.width = int(request['width'])
if 'numbers' in request:
strNumbers = request['numbers']
numbers = map(int, strNumbers.split(','))
d.chart.data = [numbers] #bar charts take a list-of-lists for data
if 'title' in request:
d.title.text = request['title']
#get a GIF (or PNG, JPG, or whatever)
binaryStuff = d.asString('png')
return HttpResponse(binaryStuff, 'image/png')
我的问题是,虽然我想在模板中渲染PNG文件,像这样(不工作):
return render(request, "subscription/monitorSizes.html", {'form':form,'message':'','graph':binaryStuff})
我一直在黑客这个问题多年。这无疑是一个新手问题!为了保存我的理智,请欣赏这方面的建议。非常感谢:)
编辑:我发现另一个stackoverflow Q在同一个问题上,但它并没有真正解决。
你能不叫IMG生成视图URL作为一个img标签中的src,所以你返回HttpResponse(binaryStuff,'image/png')?而不是然后试图通过binaryStuff? – JamesO 2013-05-03 12:46:20
试过。在我的模板中:{%if graph!=''%} {%endif%} – andyw 2013-05-03 13:01:16
我的意思是其中get_image是你上面显示的视图,那你试过了吗? – JamesO 2013-05-03 13:10:39