Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.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
Python 在django中,以降序排列的方式对空值进行排序_Python_Django_Django Models_Django Views - Fatal编程技术网

Python 在django中,以降序排列的方式对空值进行排序

Python 在django中,以降序排列的方式对空值进行排序,python,django,django-models,django-views,Python,Django,Django Models,Django Views,我想在Django admin中按降序排列数据,但我希望表示尚未结束的任务的null字段按照日期降序排列在最前面 例如 结束日期如下所示 -- 2018年12月5日 2017年3月22日 而不是像这样 2018年12月5日 2017年3月22日 -- 在我的视图.py中,我已经尝试过这样做 class TaskViewset(Viewsets.ModelViewset) queryset = Task.objects.filter(end_date__isnull=True).order_by(

我想在Django admin中按降序排列数据,但我希望表示尚未结束的任务的null字段按照日期降序排列在最前面

例如

结束日期如下所示

--

2018年12月5日

2017年3月22日

而不是像这样

2018年12月5日

2017年3月22日

--

在我的视图.py中,我已经尝试过这样做

class TaskViewset(Viewsets.ModelViewset)
queryset = Task.objects.filter(end_date__isnull=True).order_by("-end_date")
此限制仅返回到结束日期为空的数据

如何在首先返回未结束的任务时返回包括已结束任务在内的数据

谢谢你的帮助。

来自django

使用F()对空值进行排序

使用F()和nulls_first或nulls_last关键字参数 Expression.asc()或desc()来控制字段null的顺序 价值观默认情况下,顺序取决于您的数据库

例如,对尚未联系的公司进行排序 (last_contacted为空)在已联系的公司之后:

from django.db.models import F 
Company.objects.order_by(F('last_contacted').desc(nulls_last=True))

谢谢你,但是在我的admin.py中,我有一个类使用了排序。由于admin.py中的顺序,您的答案中的更改还不适用,您对如何调整有何建议?以下是admin.py
类TaskAdmin(admin.ModelAdmin)中的代码:ordering=(“-end_date”,)
需要在ordering字段中进行调整。视图中的ordering与管理站点中的ordering没有任何关系,您的问题与视图中的ordering有关是的,您是对的。现在查看工作,但在管理中,它在视图中的排序方式不是在管理中的排序方式。答案是正确的处理意见,只是想知道如何可以纠正与管理员。非常感谢如果你有任何建议,请不要犹豫分享。