MyModel는 :장고 - 필드에 문자의 번호로의 검색어 정렬하는 방법
name = models.CharField(max_length=255)
나는 검색어 세트를 정렬하려고합니다. 나는 이것에 대해 생각합니다 :
obj = MyModel.objects.all().sort_by(-len(name)) #???
어떤 생각?
MyModel는 :장고 - 필드에 문자의 번호로의 검색어 정렬하는 방법
name = models.CharField(max_length=255)
나는 검색어 세트를 정렬하려고합니다. 나는 이것에 대해 생각합니다 :
obj = MyModel.objects.all().sort_by(-len(name)) #???
어떤 생각?
당신이 파이썬에서 그 정렬 할 수도 있습니다에 ..
sorted(MyModel.objects.all(),key=lambda o:len(o.name),reverse=True)
또는 내가 거짓말을 사용
MyModel.objects.extra(select={'length':'Length(name)'}).order_by('length')
할 수 있습니다 물론 정렬 결과 (빠른 구글 검색은 다음을 발견) 파이썬의 sorted
,하지만 이상적은 아닙니다. 대신, 당신이 시도 할 수 :
MyModel.objects.extra(select={'length':'Length(name)'}).order_by('length')
당신은 SQL 함수 전달하는 extra
인수를 사용해야합니다 :이 DB 고유의 것을
obj = MyModel.objects.all().extra(order_by=['LENGTH(`name`)'])
참고 : MySQL이 LENGTH
를 사용을, 다른 사람이 수도 LEN
을 사용하십시오. (그래서 장고 1.8 현재)
새로운 뜨거움은 Length()
from django.db.models.functions import Length
obj = MyModel.objects.all().order_by(Length(name).asc())
권자 당신은 내가 발견 같은 구글 스레드에서이있어 리예입니다 : P –