Django 模板中包含的 Pygal svg 图表的工具提示问题

Posted

技术标签:

【中文标题】Django 模板中包含的 Pygal svg 图表的工具提示问题【英文标题】:Tooltip issue with Pygal svg chart included in Django template 【发布时间】:2017-04-05 22:43:01 【问题描述】:

我在 django html 模板文件中包含以下内容:

% include 'categories_chart.svg' %

但是,当发出请求并显示页面时,鼠标悬停时的工具提示信息不完整 - 它仅显示项目的值而不显示项目的标题。问题仅在请求的 HTML 文件中;实际的 svg 文件在单独加载时包含正确的信息。这是单独打开 svg 文件时的工具提示:

这是 Django 浏览器响应中不完整的工具提示,其中包含完全相同的 svg 文件:

知道是什么原因造成的吗?工具提示似乎在 Django 响应中被弄乱了,但这是最突出和可重现的错误,所以我首先关注它。

【问题讨论】:

【参考方案1】:

我设法通过使用 Base 64 数据 URI 输出而不是 SVG 文件来解决这个问题。有关信息,请参阅Paygal output page。

只需将输出分配给一个名称,然后将该名称从您的视图呈现到您的 html 模板,并使用上下文嵌入图表。比如:

your_chart = pygal.Line() (chart code goes here) some_name = your_chart.render_data_uri()

然后在您的 django 视图中:

def charts_page(request): return render_to_response('charts_page.html', 'your_chart': some_name)

最后,在您的 charts_page.html 模板中:

<embed type="image/svg+xml" src= your_chart|safe />

这将完美地显示所有图表并且没有工具提示错误。

【讨论】:

以上是关于Django 模板中包含的 Pygal svg 图表的工具提示问题的主要内容,如果未能解决你的问题,请参考以下文章

django下模板的包含和继承

Python可视化|pygal37-pygal用法及示例

界面中包含的 Graphql 类型未添加到 graphene-django 中的模式

Django 模板变量和 Javascript

Django 模板变量和 Javascript

Django 模板变量和 Javascript