2018-10-12 Django 之 F 修改 DjangoJSONEncoder 键名

如下栗子,可以把原来数据库中 status 和 统计结果 count 两个关键词替换成 echart 需要的 name 和 value 方便生产除json结果直接交给 echart 绘图:

    data = SampleProductStatus.objects.filter(sample__customer_id=request.user.username).values('status')\
        .annotate(count=Count('status'), name=F('status'), value=F('count')).values('value', 'name')
    return HttpResponse(json.dumps(list(data), cls=DjangoJSONEncoder), content_type="application/json")

然后直接就可以使用 js 绘图啦:

function set_sample_test(){
    $.ajax({
        type: 'GET',
        url: "/sample_status/",
        data: null,
        success: function (data) {
            test_option = {
                    tooltip : {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                calculable : true,
                series : [
                    {
                        name:'实验状态',
                        type:'pie',
                        radius : [20, 110],
                        center : ['50%', '40%'],
                        roseType : 'area',
                        data: data
                    }
                ]
            };
            // 使用刚指定的配置项和数据显示图表。
            test_status.setOption(test_option);
            },
    });
}

图形结果如下:

5155564-d3897dd26a2cc63e.jpg
echart 绘图结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值