我有一个简单的模型
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排序,但在顶部有一大堆英文标题是无序的。
有什么建议吗?
发布于 2010-08-31 23:48:06
对于您的情况,我认为应该在python代码中进行排序(目前,排序是在数据库中进行的)。imho,在数据库中做你想做的事情是不可能的,至少在不手工写一些sql的情况下是不可能的。
因此,在您的视图中,我们可以这样做:
your_objects = list(YourObject.objects.filter(....))
your_objects.sort(key=lambda ob: ob.title_french if ob.title_french else ob.title)只要你对小列表进行排序,这应该不是一个太大的性能问题。
发布于 2010-08-31 20:51:43
您是否尝试过按多个字段(doc)排序
ordering = ('title_french', 'title')发布于 2010-08-31 20:53:55
在order_by中指定列title_french和title
queryset.order_by('title_french', 'title')title_french将优先考虑,如果有两个条目具有相同的title_french,则这两个条目将按其title排序
https://stackoverflow.com/questions/3609163
复制相似问题