Получить последние "n" значения из моей модели со всех моих устройств - PullRequest
0 голосов
/ 07 апреля 2020

Я хочу получить последние значения моих разных устройств из моей модели данных (django). Если мне нужно последнее, которое я использую,

dev_data = DevData.objects.order_by('dev_id','-data_timestamp').distinct('dev_id')

Но я не знаю, как получить последние "n" значения каждого из них (а не только последнее). Я попробовал следующую строку кода, но это неправильно, потому что это определяет, сколько значений вы получаете в целом, а не для каждого устройства.

dev_data = DevData.objects.order_by('dev_id','-data_timestamp').distinct('dev_id')[:n]

Может ли кто-нибудь мне помочь?

Спасибо большое много!

1 Ответ

0 голосов
/ 07 апреля 2020

Я думаю, у вас есть какие-то проблемы с different и order_by? Ну, в этом случае вы должны использовать подзапрос

from django.db.models import Subquery

DevData.objects.filter(
    id__in=Subquery(
        DevData.objects.distinct(
            'dev_id'
        ).order_by(
            'dev_id'
        ).values(
            'id'
        )
    )
).order_by(
    '-data_timestamp'
)[:n]
...