Как внутренне объединить таблицы на основе поля ManyToManyField, сгруппировать по параметру и получить последнюю в Django?

У меня есть две модели с отношением ManyToManyField:

class Education(models.Model):
    title = models.CharField(default=None, max_length=100)
    content = models.TextField(default=None)
    price = models.ManyToManyField(Price)

class Price(models.Model):
    cost = models.CharField(default=None, max_length=20)
    created_at = models.DateTimeField(auto_now=True, null=True, blank=True)

Я могу получить все строки следующим образом:

result = Education.objects.filter(price__in=Price.objects.all()).select_related('Price')/
.values_list('title', 'content', 'price__cost', 'price__created_at')

Но теперь я хочу сгруппировать по education.id и параметр cost должен быть последним вставленным параметром (основанным на created_at).

Я хочу иметь список всех Education с последними cost, которые вставлены для каждого образования.

Будет ли это работать для вас, Это вернет соответствующий id

Education.objects.filter(price__in=Price.objects.all()).select_related('Price').values('id').annotate(price_id=Max('price__id'))

Вернуться на верх