Rumah > pembangunan bahagian belakang > Tutorial Python > 介绍Django查询数据库时各种种类的排序

介绍Django查询数据库时各种种类的排序

伊谢尔伦
Lepaskan: 2018-05-18 16:53:10
asal
4423 orang telah melayarinya

按照entry_date从小到大查询数据,可以写成:

Content.objects.order_by('entry_date')
Salin selepas log masuk

从大到小排序:

Content.objects.order_by('-entry_date')
Salin selepas log masuk

下面介绍其他种类的排序

随机排序:

Content.objects.order_by('?')
Salin selepas log masuk

但是order_by(?)这种方式也许expensive并且slow,这取决于后端数据库。

按照关系表的字段排序

class Category(Base):
    code = models.CharField(primary_key=True,max_length=100)
    title = models.CharField(max_length = 255)
class Content(Base):
    title = models.CharField(max_length=255)
    description = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
Salin selepas log masuk
# 按照Category的字段code,对Content进行排序,只需要外键后加双下划线
Content.objects.order_by('category__title')
# 如果只是按照外键来排序,会默认按照关联的表的主键排序
Content.objects.order_by('category')
# 上面等价于
Content.objects.order_by('category__code')
# 双下划线返回的是join后的结果集,而单下划线返回的是单个表的集合
Content.objects.order_by('category_title')
Salin selepas log masuk

Note: 无论是单下划线还是双下划线,我们都可用{{ content.category.title }}在前端获取到关联表的数据。

【相关教程推荐】

1. 《Python免费视频教程

2.  Python基础入门教程

3.  Python在数据科学中的应用

Atas ialah kandungan terperinci 介绍Django查询数据库时各种种类的排序. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan