django-orm不区分大小写的顺序 [英] django-orm case-insensitive order by

查看:404
本文介绍了django-orm不区分大小写的顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道,我可以从DJango ORM运行不区分大小写的搜索。喜欢,

  User.objects.filter(first_name__contains =jake)
User.objects.filter(first_name__contains = sulley)
User.objects.filter(first_name__icontains =Jake)
User.objects.filter(first_name__icontains =Sulley)

另外,我可以把它们作为

  user_list = User .objects.all()。order_by(first_name)
#sequence:(Jake,Sulley,jake,sulley)
user_list = User.objects.all()。order_by( - first_name) #for reverse
#sequence:(sulley,jake,Sulley,Jake)

是否一个不区分大小写的提取的直接方法?因为我想要一个序列作为

 #期望序列:jake,Jake,sulley,Sulley 

如果没有,那么建议最好的方法。感谢提前。

解决方案

我发现使用.extra解决方案

  class MyModelName(models.Model):
is_mine = models.BooleanField(default = False)
name = models.CharField(max_length = 100)


MyModelName.objects.filter(is_mine = 1).extra(\
select = {'lower_name':'lower(name)'})。order_by('lower_name')

原始链接:



http://naorrosenberg.blogspot.fi/2011/04/django-models-orderby-charfield-case .html


I know, I can run a case insensitive search from DJango ORM. Like,

User.objects.filter(first_name__contains="jake")
User.objects.filter(first_name__contains="sulley")
User.objects.filter(first_name__icontains="Jake")
User.objects.filter(first_name__icontains="Sulley")

And also, I can fetch them as

user_list = User.objects.all().order_by("first_name")
# sequence: (Jake, Sulley, jake, sulley)
user_list = User.objects.all().order_by("-first_name") # for reverse
# sequence: (sulley, jake, Sulley, Jake)

Is there a direct way for a case-insensitive fetch?? As in I want a sequence as

# desired sequence: jake, Jake, sulley, Sulley

If not, then suggest a best way to do it. Thanks in advance.

解决方案

I found solution using .extra

class MyModelName(models.Model):
   is_mine = models.BooleanField(default=False)
   name = models.CharField(max_length=100)


MyModelName.objects.filter( is_mine=1 ).extra(\
    select={'lower_name':'lower(name)'}).order_by('lower_name')

original link:

http://naorrosenberg.blogspot.fi/2011/04/django-models-orderby-charfield-case.html

这篇关于django-orm不区分大小写的顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆