Выбор и сортировка по уникальному внешнему ключу с помощью Django - PullRequest
1 голос
/ 05 мая 2011

У меня есть таблица с именем «speed», в которой есть внешний ключ для строки пользователя и целочисленное поле с именем «speed».То, что я хотел бы сделать, это получить максимальную скорость для уникальных пользователей.Например:

Если бы скорость содержала

id   |   speed   |   user_id   |
1    |    40     |     1       |
2    |    50     |     1       |
3    |    10     |     2       |

, то вернулись бы идентификаторы 2 и 3. Возможно ли это с помощью API базы данных Django?

1 Ответ

2 голосов
/ 05 мая 2011

Это не совсем то, что вы просили, но дает вам список идентификаторов пользователей и связанных с ними максимальных скоростей:

from django.db.models import Max
Speed.objects.values_list('user').annotate(Max('speed'))

Это может быть более полезным: список объектов пользователей с их максимальными скоростями:

User.objects.all().annotate(Max('speed__speed'))

Редактировать после комментария Ну, вы не показываете, откуда исходит время, но, если предположить, что это другое поле в модели Speed, все равно довольно просто:

Speed.objects.filter(time__gte=fiveminutesago).values_list('user').annotate(Max('speed'))

См. Документацию по упорядочению предложений аннотаций и фильтров .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...