2012-10-09 23 views

回答

15

您可能需要进行排序,在蟒蛇..

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

或词不达意(A快速谷歌搜索发现以下)

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

你当然也可以排序的结果使用Python的sorted,但这并不理想。相反,你可以试试这个:

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

笑你穆斯塔从同谷歌线程我发现有这个:P –

4

你需要使用extra参数传递一个SQL函数:

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

注意,这是DB-具体:MySQL使用LENGTH,其他人可能使用LEN

9

新的辣味(如Django的1.8左右)是Length()

from django.db.models.functions import Length 
obj = MyModel.objects.all().order_by(Length(name).asc()) 
相关问题