次のモデルを検討してください。
class Data(Model):
created_at = models.DateTimeField()
category = models.CharField(max_length=7)
すべてのカテゴリで最新のオブジェクトを選択したい。
この質問に続いて、個別のカテゴリを選択し、それぞれに対して個別のクエリを作成しています。
categories = Data.objects.distinct('category').values_list('category', flat=True)
for category in categories:
latest_obj = Data.objects.filter(category=category).latest('created_at')
このアプローチの欠点は、多数のクエリが作成されることです (個別のカテゴリに対して 1 つ、次にカテゴリごとに個別のクエリ)。
単一のクエリでこれを行う方法はありますか?