5

我使用 pyGal 制作图表,但无法将它们插入 django 模板中。如果我在views.py中尝试这样的话,效果很好

 return HttpResponse(chart.render())

但是当我在我的模板中做这样的事情时根本不起作用

 {{chart.render}}
4

4 回答 4

6

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

{{ graph|safe  }}

或者

{{ graph.render()|safe  }}

取决于您传递给模板的内容。

这为我解决了这个问题。

于 2014-05-08T13:47:53.173 回答
4

这就是我所做的(而且效果很好!):

视图.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)

我的模板.html

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

就这些!

于 2015-03-16T17:19:34.460 回答
2

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

于 2013-07-12T07:17:01.323 回答
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()
})
于 2020-06-16T09:54:12.527 回答