我如何在django模板中嵌入pygal图表

时间:2013-07-12 06:46:17

标签: django django-templates pygal

我使用pyGal制作图表,但我无法在django模板中插入它们。 如果我在views.py

中尝试这样做,它的效果很好
 return HttpResponse(chart.render())

但是当我在我的模板中制作这样的东西时根本不起作用

 {{chart.render}}

4 个答案:

答案 0 :(得分:4)

关于pygal的教程是准确的,但是您可能看到的问题是默认情况下烧瓶转义html。在您的模板中添加:

{{ graph|safe  }}

{{ graph.render()|safe  }}

根据您传递给模板的内容。

这解决了我的问题。

答案 1 :(得分:3)

这就是我所做的(而且它可以游泳!):

<强> views.py

def myview(request):
    # do whatever you have to do with your view
    # customize and prepare your chart
    # save SVG chart to server
    mychart.render_to_file('/path/to/graph.svg') 
    # end your view. For instance:
    context = {'message': 'Hello Pygal!'}
    return render(request, 'path/to/mytemplate.html', context)

<强> mytemplate.html

<embed type="image/svg+xml" src="/path/to/graph.svg" width="90"/>

就是这样!

答案 2 :(得分:1)

我可以给你答案,但我相信this教程会提供更详细的解释。

答案 3 :(得分:1)

多种方法

一种方法是

在模板中:

<div id="chart">
   <embed type="image/svg+xml" src= {{ chart|safe }} />
</div>

在Django视图中:

return render(request, "temlate.html" , { 
    "chart": date_chart.render_data_uri()
})