2012-10-09 3 views

답변

15

당신이 파이썬에서 그 정렬 할 수도 있습니다에 ..

sorted(MyModel.objects.all(),key=lambda o:len(o.name),reverse=True)

또는 내가 거짓말을 사용

MyModel.objects.extra(select={'length':'Length(name)'}).order_by('length') 
7

할 수 있습니다 물론 정렬 결과 (빠른 구글 검색은 다음을 발견) 파이썬의 sorted,하지만 이상적은 아닙니다. 대신, 당신이 시도 할 수 :

MyModel.objects.extra(select={'length':'Length(name)'}).order_by('length') 
+1

권자 당신은 내가 발견 같은 구글 스레드에서이있어 리예입니다 : P –

4

당신은 SQL 함수 전달하는 extra 인수를 사용해야합니다 :이 DB 고유의 것을

obj = MyModel.objects.all().extra(order_by=['LENGTH(`name`)']) 

참고 : MySQL이 LENGTH를 사용을, 다른 사람이 수도 LEN을 사용하십시오. (그래서 장고 1.8 현재)

9

새로운 뜨거움은 Length()

from django.db.models.functions import Length 
obj = MyModel.objects.all().order_by(Length(name).asc()) 
관련 문제