1. ホーム
  2. django

[解決済み] django クエリ 最新n件のレコードを取得

2023-04-03 04:04:36

質問

メッセージストリームを実装しているとします。レコードはIDの昇順でソートされ、各フェッチ要求は、私は最新の10レコードのみをフェッチすることを許可したいです。

私は試してみました。

Messages.objects.filter(since=since)[:-10]

そして、Negative Indexingはサポートされていませんというエラーが出ました。

現在の対処法は、ID降順でソートしてから実行するようにしています。

Messages.objects.filter(since=since)[:10]

しかし、これではフロントエンドが再び順序を逆転させる必要があります。

私の質問は、それを行うためのエレガントな方法があるかということです。

どのように解決するのですか?

クエリセットを を逆転させることができます。 :

last_ten = Messages.objects.filter(since=since).order_by('-id')[:10]
last_ten_in_ascending_order = reversed(last_ten)