1

我有以下带有示例数据的结构:

id   season_id    title 
1    1            Intro
2    1            Second part
3    1            Third part
4    4            Other intro
5    4            Other second part

(不要问为什么),其中 season_id 总是指向本季第一集的 id ......

我想要什么,得到以下信息:

1    1            Intro
4    4            Other intro

从技术上讲,这是季节的第一集 - 所有Season_eid最低的条目

对于并且我正在使用以下查询来获取它们的 ID:

Movie.objects.filter(category_type = 2).values('season_eid').annotate(models.Min('season_eid'))

并且拥有 id 我可以使用 django orm __in 构造获取对象的所有数据。

我可以只使用一个查询进行分组/注释并获取所有字段/值吗?values + annotate 只给了我字典列表,但我想用其他字段获取正确的对象(season_eid 的最低值/最小值),而不是这个。

4

1 回答 1

1
Movie.objects.annotate(category_min_season = models.Min('category__season_id')).filter(season_id=category_min_season)

假设您的类别对电影模型具有 FK。

更新:

实际上你甚至不需要注释;感谢您存储在表中的非规范化数据。

你可以这样做:

Model.objects.filter(id=Q(season_id))
于 2010-02-23T12:50:50.273 回答