8

返される結果を 5 項目に制限する Django クエリを実行しようとしています。これは簡単ですが、クエリが常に 5 つの項目を返すとは限らないという事実を除けば. その場合、次のようなステートメント (私のコード) は失敗します。

 users = User.objects.filter(username__istartswith = name)[5].only('Person__profile_picture', 'username')

クエリが 1 つの結果しか返さない場合、範囲外のインデックス エラーが発生します。クラッシュせずに最大 5 つの結果を返すように Django に指示する方法はありますか? すべてを try ブロックにまとめる標準的な解決策はありますか? それとも、これを達成するために未加工の SQL クエリを作成する必要がありますか?

4

2 に答える 2

17

ドキュメントのように: https://docs.djangoproject.com/en/dev/topics/db/queries/#limiting-querysets

たとえば、これは最初の 5 つのオブジェクト (LIMIT 5) を返します。

Entry.objects.all()[:5]
于 2012-10-01T05:08:45.433 に答える
-2
users=User.objects.filter(username__istartswith=name)        
[:5].values(‘Person__profile_picture’,’username’)
于 2020-02-04T07:25:17.660 に答える