尝试使用ChartIt显示图表时,出现错误说模板不存在

时间:2013-08-12 21:43:09

标签: python django highcharts

我正在使用ChartIt并在尝试在网址上查看图表时继续收到“模板不存在”。正在正确地遵循教程,但可能在某处犯了错误。我是Django的新手,所以任何帮助都会受到赞赏。加载图表的请求正在调用def。

在views.py文件中进行def。

def lineChart(request):
    commitData = \
        DataPool(
            series=
            [{'options': {
                'source': TestCommit.objects.all()[:200]}, 'terms': ['author', 'author_time']}])

    linechart = Chart(
        datasource=commitData,
        series_options=
        [{'options': {
            'type': 'line',
            'stacking': False},
          'terms': {
              'author_time': [
                  'author_time']
          }}],
        chart_options=
        {'title': {
            'text': 'YAYs'},
         'xAxis': {
             'title': {
                 'text': 'Month number'}}})


    return render_to_response({'testCommits.html': linechart})

testCommits.html

<head>
    <!-- code to include the highcharts and jQuery libraries goes here -->
    <!-- load_charts filter takes a comma-separated list of id's where -->
    <!-- the charts need to be rendered to                             -->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
    <script src="http://code.highcharts.com/highcharts.js" type="text/javascript"></script>
    <script src="/highcharts.js" type="text/javascript"></script>
    {% load chartit %}
    {{ linechart|load_charts:"container" }}
</head>
<body>
    <div id='container'> Chart will be rendered here </div>
</body>

2 个答案:

答案 0 :(得分:0)

我注意到在他们的安装说明中他们并没有说'在您的设置文件中将'chartit'添加到INSTALLED_APPS,但他们在他们的演示项目中做了。你做到了吗?

编辑: dan-klasson是对的。您需要指定要返回的模板。您的观点应该返回以下内容:

return render_to_response('testCommits.html', {'linechart': linechart})

字典是传递给模板的上下文。第一个参数是模板名称,在您的情况下是testCommits.html。

答案 1 :(得分:0)

您收到此错误是因为您的Django在模板加载期间不知道模板的位置。试试这个:

  1. 转到项目根目录中的 settings.py 并指定 TEMPLATE_DIRS 。已经为您定义了变量,因此只需列出path_to_your_dir即可。例如:

    TEMPLATE_DIRS = (
            "home/myname/path_to_templates"
    )
    
  2. 更新您的视图,以便按其他用户的指定正确返回:

    return render_to_response('testCommits.html', {'linechart': linechart})