[英]Django query for latest version of a object
我正在嘗試在Django中編寫查詢,但是我不確定什么是編寫此查詢的最佳方法。 還假設數據庫是mySQL。 如果使用了distinct,這很重要。
class Homework(models.Model):
title = TextField()
class Assignment(models.Model):
homework_id = Foreignkey(Homework, on_delete=models.CASCADE)
task = IntegerField(default=1)
version = IntegerField(default=1)
給定上面的模型,我想獲取特定作業中的所有作業,其中作業是任務的最新版本。 例:
Homework_id: 1
assignment v1, t1
assignment v2, t1
assignment v1, t2
如果我有一個作業對象,其中有任務1和任務2的作業,則結果查詢應返回Assignment t1, v2 and Assignment t2, v1
v refers to version
t refers to task
您可以嘗試使用最大版本號注釋任務,如下所示:
Assignment.objects.filter(homework_id=1).values('task').annotate(version=Max('version'))
這將為您提供以下信息:
<QuerySet [{'task': 1, 'version': 2}, {'task': 2, 'version': 1}]>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.