簡體   English   中英

Django Chartit 2-一個簡單的Chart中的多個系列

[英]Django chartit 2 - multiple series in one simple Chart

在成功使用Django Chartit 2構建圖表(簡單的折線圖和數據透視圖的不同用法)之后,我嘗試使用來自不同模型的數據制作折線圖。 失敗了,我嘗試復制此處提供的示例

它也失敗了,我想知道為什么它可能與Chartit 2的Python 3遷移(我使用的是Python 3.5 / Django 1.8 / Chartit 0.2.2)有關(如果來自Chartit 1文檔)。 也許它尚未適應Python 3,但我無法解決問題……這是我的代碼:

  • views:完全按照提供的示例
  • 追溯 :

在/ space / reports / 2處發生TypeError

不可排序的類型:dict()<dict()

請求方法:GET

請求網址: http:// localhost:8000 / space / reports / 2

Django版本:1.8.6

異常類型:TypeError

異常值:

不可排序的類型:dict()<dict()

異常位置:_groupby_x_axis_and_vqs中的C:\\ Program Files(x86)\\ Python 3.5 \\ lib \\ site-> packages \\ chartit \\ charts.py,行159

  • 完整回溯:

C:\\ Program Files(x86)\\ Python 3.5 \\ lib \\ site-packages \\ django \\ core \\ handlers \\ base.py in get_response response = wrapd_callback(request,* callback_args,** callback_kwargs)...

報表3中的C:\\ Users \\ Usuario1 \\ space \\ reports \\ views.py'文本':'月號'}}}))

C:\\ Program Files(x86)\\ Python 3.5 \\ lib \\ site-packages \\ chartit \\ charts.py init self.x_axis_vqs_groups = self._groupby_x_axis_and_vqs()...

_groupby_x_axis_and_vqs中的C:\\ Program Files(x86)\\ Python 3.5 \\ lib \\ site-packages \\ chartit \\ charts.py itr1 = sorted(itr1,key = sort_fn)

  • chartit \\ charts.py中的相應代碼:

     dss = self.datasource.series x_axis_vqs_groups = defaultdict(dict) sort_fn = lambda td_tk: td_tk[1].get('xAxis', 0) so = sorted(self.series_options.items(), key=sort_fn) x_axis_groups = groupby(so, sort_fn) for (x_axis, itr1) in x_axis_groups: sort_fn = lambda td_tk: dss[td_tk[1]['_x_axis_term']]['_data'] **itr1 = sorted(itr1, key=sort_fn)** for _vqs_num, (_data, itr2) in enumerate(groupby(itr1, sort_fn)): x_axis_vqs_groups[x_axis][_vqs_num] = _x_vqs = {} for tk, td in itr2: _x_vqs.setdefault(td['_x_axis_term'], []).append(tk) return x_axis_vqs_groups 

非常感謝您的幫助!

亞歷山大·托多羅夫(Alexander Todorov)的這篇帖子可能會有所幫助:

問題在於兩個列表中的第二個元素具有不同的鍵,而Python不知道如何比較它們。 在早期的Python版本中,這是特殊情況,如Ned Batchelder(Python的coverage工具的作者)所述,但在Python 3中,字典沒有自然的排序順序。 對於django-chartit(我現在是它的官方維護者),當您想在同一圖表上繪制來自多個源(模型)的數據時,會觸發此錯誤。 在這種情況下,來自每個數據序列的字段是不同的,並且會觸發上述錯誤。

鏈接到錯誤描述: http : //atodorov.org/blog/2016/08/05/python-2-vs-python-3-list-sort-causes-bugs/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM