Djangonvd3 load_chart标记在输出HTML中的计算结果为False,并且不显示任何图表

2024-05-13 15:24:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用django-nvd3实现pieChart。但是,{% load_chart charttype chartdata chartcontainer extra %}的输出html计算结果为False。结果(很可能)图表无法出现。下面是视图.pydjango模板html输出。在

在视图.py

def results(request, nlm_id, time):
    journal = Journal.objects.get(nlm_id = nlm_id)
    stats = return_week(nlm_id, time, PLATFORMS)

    chartdata = {'x': PLATFORMS, 'y': stats}
    charttype = "pieChart"
    chartcontainer = 'piechart_container'
    data = {
        'charttype': charttype,
        'chartdata': chartdata,
        'chartcontainer': chartcontainer,
        'extra': {
            'x_is_date': False,
            'x_axis_format': '',
            'tag_script_js': True,
            'jquery_on_ready': True,
        }
    }
    return render(request, 'journals/results.html', {'journal': journal, 
        'stats': stats, 'time': time, 'data': data})

模板

^{pr2}$

输出HTML

<html>
    <head>
        ...
        <script>False</script>
    </head>
    <body>
        <div id=""><svg style="width:600px;height:400px;"></svg></div>
    </body>
</html>

Tags: djangoidfalsedatatimehtmlstatsscript
3条回答

我也遇到了类似的问题,当我改变{% load_chart charttype chartdata chartcontainer extra %}时,我解决了这个问题 到{% load_chart data.charttype data.chartdata data.chartcontainer data.extra %} 类似地{% include_container chartcontainer 400 600 %}到{}

一种解决方案是直接传递变量charttypechartdatachartcontainer、和{},如下所示:

context = {
    'charttype': charttype,
    'chartdata': chartdata,
    'chartcontainer': chartcontainer,
    'extra': {
        'x_is_date': False,
        'x_axis_format': '',
        'tag_script_js': True,
        'jquery_on_ready': False,
        },
    'journal': journal, 
    'stats': stats,
    'time': time,
    }

return render(request, 'journals/results.html', context)

您可以在检查是否存在chartdata的if语句中包装负荷图表,例如:

{% if chartdata %}
    {% load_chart charttype chartdata chartcontainer extra %}
{% endif %}

相关问题 更多 >