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

伊谢尔伦
Freigeben: 2018-05-18 16:53:10
Original
4123 Leute haben es durchsucht

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

Content.objects.order_by('entry_date')
Nach dem Login kopieren

从大到小排序:

Content.objects.order_by('-entry_date')
Nach dem Login kopieren

下面介绍其他种类的排序

随机排序:

Content.objects.order_by('?')
Nach dem Login kopieren

但是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)
Nach dem Login kopieren
# 按照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')
Nach dem Login kopieren

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

【相关教程推荐】

1. 《Python免费视频教程

2.Python基础入门教程

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

Das obige ist der detaillierte Inhalt von介绍Django查询数据库时各种种类的排序. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!