Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
204 views
in Technique[技术] by (71.8m points)

Django ORM查询问题

如下截图,存在这样一张表 student model 有三个字段 name 学生姓名 score 分数 created_time 记录创建时间

class StudentScore(models.Model):
    name = models.CharField('姓名', max_length=128)
    score = models.IntegerField(verbose_name='分数')
    created_time = models.DateTimeField(auto_now_add=True)

每位学生可能有多条记录, 我需要用每位学生最新的一条记录,做一个排行榜, 用 django 的 orm 如何去查询?
image.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

这个也就是聚合查询,可以这样写

from django.db.models import Max   # 倒入Max函数查询最大时间,也就是最新时间
from .models import StudentScore   # 倒入你的StudentScore model类

student_info = StudentScore.objects.values("name").annotate(latest_date=Max('create_time'))

其中 latest_date 是create_time的重命名,可以自己定义,望采纳。

要查询其他数据, 后面加上条件


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...