在 Django 中按降序过滤查询集中的项目
在本教程中,我们将学习如何使用 Django 中的 order_by()
方法按降序过滤出查询集中的项目。
在 Django 中使用 order_by() 方法以降序从查询集中过滤项目
order_by()
方法对您的结果进行排序。 默认顺序是我们将它们插入数据库时的顺序。
让我们看看获得默认排序是什么样子的。 首先,让我们获取所有对象。
simple.objects.all()
输出:
<QuerySet [<Simple:www.example.com>,<simple:www.baidu.com>,<www.example.com>,<www.example.com>,<google.com>,<apple.com>]>
如果我们想要不同的顺序,我们会使用 order_by()
。 我们可以使用 order_by()
而不是 all()
。
它将对所有结果进行操作。 如果我们在此之前有一个过滤器,它将首先运行,然后是 order_by()
。
现在,我们将传递一个字符串来指定要订购的内容。 例如,如果我们使用 order_by("id")
对其进行过滤,我们会得到相同的结果,因为它从最小的 id 开始并向上移动。
请参阅下面的代码。
simple.objects.order_by("id")
输出:
<QuerySet [<Simple:www.example.com>,<simple:www.baidu.com>,<www.example.com>,<example.com>,<google.com>,<apple.com>]>
我们在 id 前面使用 - 来反转它,所以它不会从最小的开始,而是从最大的 id 开始。 当我们运行它时,我们看到 www.apple.com 是我们查询集的第一项。
simple.objects.order_by("-id")
输出:
<QuerySet [<apple.com>,<google.com>,<example.com>,<www.example.com>,<simple:www.baidu.com>,<Simple:www.example.com>]>
我们还可以在其他列中使用 order_by()
。
假设我们有 url 列。 如果我们通过 url 来排序,我们可以使用下面的代码。
simple.objects.order_by("url")
输出:
<QuerySet [<apple.com>,<Simple:example.com>,<google.com>,<www.example.com>,<www.example.com>,<simple:www.baidu.com>]>
由于它是一个字符串字段,它将按字母顺序排列。 我们可以通过简单地将 - 放在前面来按降序过滤它。
在我们的查询集中,我们得到第一个项目,www.baidu.com。
simple.objects.order_by("-url")
输出:
<QuerySet [<simple:www.baidu.com>,<www.example.com>,<www.example.com>,<google.com>,<Simple:example.com>,<apple.com>]>
通常,当可能有两列可能具有准确的顺序时,我们会有多个 order_by()
。 让我们看一下数字列,它有两个 10 数字和一些不同的数字。
simple.objects.order_by("number")
输出:
<QuerySet [<apple.com>,<Simple:example.com>,<google.com>,<www.example.com>,<www.example.com>,<simple:www.baidu.com>]>
我们可以看到 apple.com 排在第一位,因为数字“2”跟在同一行后面。
如果我们想强制执行更严格的排序,我们可以将另一个选项附加到 order_by()
。 首先,我们将按号码订购,然后按网址订购。
simple.objects.order_by("number","url")
如果我们想限制结果,比如前三个,我们可以使用以下语法。
simple.objects.order_by("-id")[:3]
输出:
<QuerySet [<apple.com>,<google.com>,<example.com>]>
现在,我们只有降序排列的查询集的三个项目。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。
避免在 Django 中创建重复对象
发布时间:2023/05/04 浏览次数:71 分类:Python
-
本文的主要目的是了解 Django 中的 get_or_create() 方法。 它是一种用于避免查询集中出现冗余字段的方法。