Django 应用程序中的 Javascript 饼图 - 显示动态数据的问题

标签 javascript django charts

我无法弄清楚这一点:我有一个 Django 应用程序,并且在索引页面的模板上有一些 JavaScript 代码来制作饼图。我不太了解 JavaScript,但从某处获取了一些代码并且它可以工作。我的问题是,当我直接输入数据时,代码可以工作,但是当我尝试动态获取数据时,饼图就会消失。

令我困惑的是,当我查看页面源代码时,数据就在那里。它已成功从数据库中提取数据并将其设置为图表数据的正确格式。所以看起来它应该可以工作。

下面是页面源代码:第一行数据是动态生成的数据,然后后面的数据(被注释掉)是静态类型的数据。如果我注释掉动态的,并取消注释静态的,饼图就在那里。反之亦然,它就会消失。这两组数据在我看来完全一样——其中一组是怎么回事?

$(function () {
    // data
    var data = [

        { label: "Blogs",  data: 87102},

        { label: "Conversation (Phone)",  data: 2652},

        { label: "Folktales",  data: 47981},

        { label: "Internet Forums",  data: 75900},

        { label: "Jokes",  data: 5833},

        { label: "Literature",  data: None},

        { label: "Opinion",  data: 19231},

        { label: "Plays",  data: 9512},

        { label: "Poem",  data: 404},

        { label: "Political Speeches",  data: 733},

        { label: "Proverbs",  data: 1081},

        { label: "Radio",  data: 13774},

        { label: "Recipes",  data: 215},

        { label: "Songs",  data: 3161},

        { label: "Sports",  data: 8732},

        { label: "Television (Drama)",  data: 142029},

        { label: "Web",  data: 336919},

        // { label: "Web",  data: 337972},
        // { label: "Television",  data: 142029},
        // { label: "Blogs",  data: 86049},
        // { label: "Internet Forums",  data: 74058},
        // { label: "Folktales",  data: 30698},
        // { label: "Opinion",  data: 19231},
        // { label: "Plays",  data: 9512},
        // { label: "Sports",  data: 8732},
        // { label: "Radio (News)",  data: 7438},
        // { label: "Radio (Interviews)",  data: 6286},
        // { label: "Jokes",  data: 5833},
        // { label: "Songs",  data: 3161},
        // { label: "Conversation (Phone)",  data: 2652},
        // { label: "Proverbs",  data: 1081},
        // { label: "Political Speeches",  data: 733},
        // { label: "Poem",  data: 404},
        // { label: "Recipes",  data: 215},
        // { label: "Radio (Listener Responses)",  data: 53},

    ];

这是图表的完整代码,以防您需要:

{% block javascript %}
        <script language="javascript" type="text/javascript" src="/media/js/flot/jquery.flot.js"></script>
        <script language="javascript" type="text/javascript" src="/media/js/flot/jquery.flot.pie.js"></script>

        <script type="text/javascript">
$(function () {
    // data
    var data = [
        {% for cat,count in cat_wordcount %}
        { label: "{{ cat }}",  data: {{ count }}},
        {% endfor %}
        // { label: "Web",  data: 337972},
        // { label: "Television",  data: 142029},
        // { label: "Blogs",  data: 86049},
        // { label: "Internet Forums",  data: 74058},
        // { label: "Folktales",  data: 30698},
        // { label: "Opinion",  data: 19231},
        // { label: "Plays",  data: 9512},
        // { label: "Sports",  data: 8732},
        // { label: "Radio (News)",  data: 7438},
        // { label: "Radio (Interviews)",  data: 6286},
        // { label: "Jokes",  data: 5833},
        // { label: "Songs",  data: 3161},
        // { label: "Conversation (Phone)",  data: 2652},
        // { label: "Proverbs",  data: 1081},
        // { label: "Political Speeches",  data: 733},
        // { label: "Poem",  data: 404},
        // { label: "Recipes",  data: 215},
        // { label: "Radio (Listener Responses)",  data: 53},

    ];

    var series = Math.floor(Math.random()*10)+1;

    // GRAPH 7
     $.plot($("#graph7"), data,
    {
            series: {
                pie: {
                    show: true,
                    combine: {
                        color: '#999',
                        threshold: 0.03
                    }
                }
            },
            legend: {
                show: false
            }
    });

});

最佳答案

我认为问题出在

{ label: "Literature",  data: None},

None 不是有效的 js 表达式

编辑:为了避免“无”问题,您的模板中应该有类似的内容:

{ label: "{{ cat }}",  data: {% if count %} {{ count }}} {% else %} 0 {% endif %},

关于Django 应用程序中的 Javascript 饼图 - 显示动态数据的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23922342/

相关文章:

javascript - 如何触发Google Chart内文本 anchor 的选择事件?

javascript - 在 polymer 中声明事件

javascript - 当监视文件被修改时生成 ls ENOENT

javascript - 如何避免这种邪恶评估的情况?

javascript - knockout js的optionsText绑定(bind)中编码的HTML

Django:按月计数对象

python - 检测客户端何时与 Heroku 上的 Django 和服务器发送的事件断开连接

django - 我应该将 base.html 放在 django 项目中的什么位置?

c# - 从 MVC 中的表创建图表

C# 4.0 Excel 生成图表和仓位