考虑这个示例模型:排序显示名称,而不是实际值
MODEL_CHOICES =( (U “SPAM”,U “垃圾邮件”), (U “XOUP”,U “Eggsoup”) , )
(剪断)
类型= models.CharField(MAX_LENGTH = 4,选择= MODEL_CHOICES)
(实际实现特定领域和非英语的,所以这个样品必须做。)
当建立我的查询,我想通过类型字段对结果进行排序,和现在结果发送给用户。当然,我想按照该字段的显示名称排序。
东西线沿线的:
文件= MyModel.objects.filter(...)ORDER_BY( “类型”)
然而,[query-set].order_by([field])
只允许由字段名排序,即使Eggsoup <垃圾邮件(给读者),也会导致垃圾邮件< XOUP(对计算机)。
考虑这一套按类型排序实例:
名称|类型
obj1 | SPAM
obj2 | SPAM
obj3 | SPAM
obj4 | XOUP
obj5 | XOUP
但是,这是订单的用户将看到的,即用户将看到的显示名称,而不是类型列的内部字段值:
名称|类型
obj1 |垃圾邮件
obj2 |垃圾邮件
obj3 |垃圾邮件
obj4 | Eggsoup
obj5 | Eggsoup
哪个在人类用户的眼中没有正确排序。
在Django中是否有一个允许按显示名称排序的功能?或者一种方法来完成这个“手动”?(重命名的选择,这样的显示名称具有相同的数量级的实际值是不是一种选择。)
谢谢。运营商的使用看起来很漂亮,我不知道它。 – nikola 2010-01-07 11:47:37