Django выберите связанный с максимальным значением поля для каждого результата - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть две модели.

models.py:

class Drink(models.Model):
    account = models.ForeignKey(Account, null=False, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, null=False, blank=False)
    # some other fields that don't matter now...


class DrinkStock(models.Model):
    ingredient = models.ForeignKey(Ingredient, null=False, on_delete=models.CASCADE)
    quantity = models.DecimalField(max_digits=14, decimal_places=3, null=False, default=0.000)
    date = models.DateTimeField(auto_now_add=True)

Позвольте мне объяснить, почему у меня есть две модели, прежде чем кто-то опубликует другое решение. Идея состоит в том, чтобы иметь историю запасов. И когда я показываю все напитки, мне нужно отображать их только с последними связанными stock (с последними date).

views.py

def drinks(request):
    drinks = Drink.objects.select_related('stock').filter(account__id=request.session['account_id'])

Но как я могу добавить соответствующие stock каждого drink с последними date?

...