django-tables2 - 如何“旋转”一个表,以便值成为列标题?

时间:2015-06-05 22:26:37

标签: python django django-tables2

嗨,我是python的新手/中级,对Django和网络应用程序来说都是新手。我已经能够弄清楚我的应用程序运行和处理基本输入/输出的大部分内容。

我开始为最终用户格式化我的数据,我发现django-tables2看起来非常有前途,但我无法按照自己的意愿定制它。

基本上django-tables2直接从模型中获取一些数据,并将其格式化为:

+------------------------+
| ID | Foo  | Bar  | Num |
+------------------------+
| 1  | Foo1 | Bar1 | 20  |
| 2  | Foo1 | Bar2 | 25  |
| 3  | Foo2 | Bar1 | 30  |
| 4  | Foo2 | Bar2 | 30  |
+------------------------+

(这有点基于我的数据,但要点是它为每个ID显示一行)。

我想要做的是更改它,以便数据组织如下:

+--------------------+
| Foos | Bar1 | Bar2 |
+--------------------+
| Foo1 | 20   | 25   |
| Foo2 | 30   | 30   |
+--------------------+

到目前为止,我的代码几乎与django-tables2 tutorial中的代码完全相同,只能以第一种方式工作。我已经玩过手动更改列名,甚至通过模板自己构建它,但我仍然坚持将值填充到正确的位置。

我愿意解决我的问题。

BONUS:我已经能够使用表单成功地将数据添加到我的表中,但我希望能够在表格中添加数据 (如电子表格)

我研究过使用jquery,我认为它有很多方法可以解决这个问题,但我对它几乎一无所知,似乎我不得不花很多时间去追赶使用它。这里有什么想法吗?*

1 个答案:

答案 0 :(得分:0)

如果我读得正确,我认为你仍然坚持如何转动表格

你可以用PANDAS做到这一点。 Pandas使用数据框而不是查询集,因此您还需要django-pandas。 安装并添加到模型中后,您可以查询数据,转换为数据帧,然后创建数据透视。你将拥有一个数据帧结构,我不知道如何将它恢复为django本身可以使用的格式,但我认为你将走向正确的道路。

示例代码:

queryset = Model.objects.all()
dataframe = queryset.to_dataframe()
pivot = dataframe.pivot('foo', 'bar')

http://pandas.pydata.org/pandas-docs/stable/reshaping.html会帮助你。

希望有所帮助!