0

我正在按照此处提供的演示示例探索 Django Chartit2 包以绘制图表。我创建了自己的数据透视图模型,其中包含以下字段:城市、人员和销售额。

在我看来,我通过使用基于销售列聚合的术语来创建数据透视图。

尝试访问 url 时出现错误:

异常类型:/chart/pivotpool/ 处的 TypeError

异常值:“dict_keys”对象不支持索引

在指定数据透视图的条款时让我知道我缺少什么。

class SalesHistory(models.Model):
    city = models.CharField(max_length=50)
    person = models.CharField(max_length=50)
    sales_qty = models.IntegerField()

def some_view(request):
    ds = PivotDataPool(series=[{'options': {'source': SalesHistory.objects.all(), 'categories': ['city']},
    'terms': {'total_sales': Sum('sales_qty')}}])
    pivchrt = PivotChart(datasource=ds, series_options=[{'options': {'type': 'column', 'stacking': True}, 'terms':['total_sales']}], chart_options = {})

我的回溯:

追溯:
get_response 中的文件“/home/sam/Documents/onemoreEnv/lib/python3.4/site-packages/django/core/handlers/base.py”
  149. 响应 = self.process_exception_by_middleware(e,请求)

get_response 中的文件“/home/sam/Documents/onemoreEnv/lib/python3.4/site-packages/django/core/handlers/base.py”
  147.响应=wrapped_callback(请求,*callback_args,**callback_kwargs)

在 some_view 中的文件“/home/sam/Documents/Lab Projects/djangoChartit/demoChartit/views.py”
  131.'文本':'城市'}}})

__init__ 中的文件“/home/sam/Documents/onemoreEnv/lib/python3.4/site-packages/chartit/charts.py”
  508. self.set_default_hcoptions()

set_default_hcoptions 中的文件“/home/sam/Documents/onemoreEnv/lib/python3.4/site-packages/chartit/charts.py”
  533. category = dss[terms[0]]['categories']
4

1 回答 1

0

chartit的charts.py文件中的set_default_hcoptions函数中使用的术语没有属性索引,这就是它给我错误的原因。我已经评论了它被初始化的那一行,即

# terms = self.series_options.keys()

并添加了我自己的版本:

terms = list(self.series_options)

它对我有用。

于 2016-02-08T08:20:35.293 回答