2013-05-20 3 views
0

Когда я сортирую в Django Я нашел это странным, я сделал четыре записи со следующими названиями:Джанго order_by прописными буквами Сортировка перед строчными

  • AAAA
  • аааа
  • ZZZZ
  • zzzz

Когда у меня есть, например:

messages = messages.order_by('-title') 

Почему у меня есть следующие результаты? Это как если заглавные буквы имеют приоритет:

  • AAAA
  • ZZZZ
  • аааа
  • ZZZZ
+0

Какой результат вы ожидали? '' Z'' меньше, чем '' a''. – soon

+2

Может ли это дать некоторые идеи? http://scottbarnham.com/blog/2007/11/20/case-insensitive-ordering-with-django-and-postgresql/ – karthikr

ответ

1

Это ожидаемое поведение на самом деле. Заглавные буквы имеют приоритет над строчными буквами. Я думаю, вероятно, из-за ascii code столиц ниже, чем в нижних регистрах.

Попробуйте это в консоли:

>>> x = ['a','A'] 
>>> sorted(x) 
>>> ['A','a'] 

Надеется, что это помогает!

Смежные вопросы