首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Order_by空白

问Django Order_by空白
EN

Stack Overflow用户
提问于 2010-08-31 20:48:16
回答 3查看 1.2K关注 0票数 1

我有一个简单的模型

代码语言:javascript
复制
title = models.CharField(max_length=250)
url = models.CharField(max_length=250)
title_french = models.CharField(max_length=250)

我想通过title_french排序,但是当它以这种方式按A-Z排序时,所有空白值都在顶部。在空值的情况下,我显示英文标题。

所以我对法语标题进行了A-Z排序,但在顶部有一大堆英文标题是无序的。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-31 23:48:06

对于您的情况,我认为应该在python代码中进行排序(目前,排序是在数据库中进行的)。imho,在数据库中做你想做的事情是不可能的,至少在不手工写一些sql的情况下是不可能的。

因此,在您的视图中,我们可以这样做:

代码语言:javascript
复制
your_objects = list(YourObject.objects.filter(....))

your_objects.sort(key=lambda ob:  ob.title_french if ob.title_french else  ob.title)

只要你对小列表进行排序,这应该不是一个太大的性能问题。

票数 2
EN

Stack Overflow用户

发布于 2010-08-31 20:51:43

您是否尝试过按多个字段(doc)排序

代码语言:javascript
复制
ordering = ('title_french', 'title')
票数 1
EN

Stack Overflow用户

发布于 2010-08-31 20:53:55

在order_by中指定列title_french和title

代码语言:javascript
复制
queryset.order_by('title_french', 'title')

title_french将优先考虑,如果有两个条目具有相同的title_french,则这两个条目将按其title排序

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3609163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档