Форум сайта python.su
Привет!
Есть модель в Django, описывающая историю изменения некой величины для каждого пользователя со временем.
class UserValueHistory (models.Model): user = models.ForeignKey (...) value = models.FloatField (...) date = models.DateTimeField (...)
Офлайн
Так пробовали?
sel_set = [] for user in Users: one_obj = {} uv = UserValueHistory.objects.filter(user=user).order_by("-date")[0] one_obj["user"] = user one_obj["value"] = uv.value sel_set.append(one_obj)
Офлайн
Да, по идее так должно работать, но тут придется делать столько же запросов к базе, сколько пользователей. Вот думаю, может можно обойтись одним-двумя запросами.
Офлайн
А разве задача не решается простым агрегированием по Max(date)?
Офлайн
В том то и дело, что мне нужно получить не просто Max(date), а значения value, которые соответствуют каждой из Max(date).
Офлайн
Сам думал о том, что мой вариант грешит большим количеством запросов. Но как-то по другому - только SQL в голову приходит. Специально перечитал пару глав из Головатого, но таких случаев там не рассматривают. Может, кто из мега-опытных (не ирония) коллег предложит решение? Тоже интересно.
Офлайн