Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 更改空值的排序分组_Django_Django Rest Framework - Fatal编程技术网

Django 更改空值的排序分组

Django 更改空值的排序分组,django,django-rest-framework,Django,Django Rest Framework,在Django Rest框架中使用排序功能时,您可以按特定字段进行升序和降序排序 这种排序首先将空值分组,然后再将字母数字值分组。(这是可以理解的,因为没有一个小于“a”) 但是,我们有没有办法把这个顺序颠倒过来,所有的字母数字值都被排序,然后再分组,然后是所有的空值 当前排序时,这是查询集的顺序 名字: 没有 没有 艾比 本 但是期望的行为如下 名字: 艾比 本 没有 没有 信息: 我正在使用“按视图集”中的OrderingFilter 这是api端点的urlhttp://192.1

在Django Rest框架中使用排序功能时,您可以按特定字段进行升序和降序排序

这种排序首先将空值分组,然后再将字母数字值分组。(这是可以理解的,因为没有一个小于“a”)

但是,我们有没有办法把这个顺序颠倒过来,所有的字母数字值都被排序,然后再分组,然后是所有的空值

当前排序时,这是查询集的顺序

名字:

  • 没有
  • 没有
  • 艾比
但是期望的行为如下

名字:

  • 艾比
  • 没有
  • 没有

信息:

我正在使用“按视图集”中的OrderingFilter

这是api端点的url
http://192.168.1.85/people/?ordering=first_name

在DRF OrderingFilter类中,filter\u queryset方法在这里调用此代码
queryset.order\u by(*ordering)
,这让我认为这可以从queryset本身解决


注:


我不确定解决方案是使用DRF、Django还是仅仅使用Python语言本身。任何都可以。

这里有一个使用F表达式的好方法:此处的可能重复是使用F表达式的好方法:此处的可能重复