【发布时间】:2015-01-08 19:15:33
【问题描述】:
可以说,我有一个这样的 SQLite 表:
A | B | SUM
-------------
AA | BA |
AB | BB |
AC | BC |
现在我想为它们设置数值,以填充第三列。 例如:
AA = 1 BA = 1
AB = 3 BB = 3
AC = 2 BC = 2
所以数据库中的表应该是这样的:
A | B | SUM
-------------
AA | BA | 2
AB | BB | 6
AC | BC | 4
我这样做是因为,我在我的项目中添加了一个 django-tables2 表,并且我想自定义排序我的表,但据我搜索,没有办法做到这一点。我只能按 A 列或 B 列对表格进行排序。但它按字母顺序排列它们,我的值不同。
另一种可能性是使用 SQL 查询对我的表进行排序,如下所示:
ORDER BY CASE WHEN A = 'AA' THEN 1
WHEN A = 'AB' THEN 3
WHEN A = 'AC' THEN 2 END
但我必须在 django 中使用 raw 方法才能做到这一点,对吧?用 ORM 插入是不可能的?至少到目前为止我是这么理解的。或者我只是不知道该怎么做。 :P
因此,我认为添加第三列只是为了按此排序整个表而不是使用 raw 会很简单;)
好吧,事实证明这并不像我希望的那么简单,如果可能的话,我想得到任何帮助。 谢谢!
【问题讨论】:
-
您的问题是什么?可以在模型的save()方法中计算第三列的值。
-
我是一个真正的菜鸟,所以请你举个例子。我应该将代码写入models.py文件吗?费。我有一个类 Example(models.Model),有 3 列:A、B 和 SUM。如何指定我希望 AA 等于 2 和 AB 等于 3 等?
-
我已经发布了一个建议。如果您在问题中包含您的模型代码,会更容易回答。
标签: python django sqlite sorting django-tables2