设为首页收藏本站
查看: 113|回复: 0

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

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34273
主题
17031
UID
1347
M币
67
贡献
17175

  • 发表于 2017-5-14 02:44:00 | 显示全部楼层 |阅读模式
    按照entry_date从小到大查询数据,可以写成:
    Content.objects.order_by('entry_date')从大到小排序:
    Content.objects.order_by('-entry_date')
    下面介绍其他种类的排序
    随机排序:
    Content.objects.order_by('?')但是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)# 按照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')Note: 无论是单下划线还是双下划线,我们都可用{{ content.category.title }}在前端获取到关联表的数据。
    【相关教程推荐】
    1. 《Python免费视频教程》
    2. Python基础入门教程
    3. Python在数据科学中的应用
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表