考慮這個示例模型:排序顯示名稱,而不是實際值
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