0

私はこの状態で立ち往生しています:私はdbにロケーションテーブルを持っています。また、各場所のIDで参照する各場所の評価を含む評価テーブルもあります。

今、私は最初の5つの場所とその評価を取得したいと思います。だから私は今2つのテーブルに触れなければなりません:場所と評価。

これは私がしました:

all_locations = Locations.objects.all()[:5]
all_ratings = Rating.objects.filter(of_location=all_locations.id)

しかし、これは間違っているようですall_locations。これは、1つの場所ではなく5つの場所を含むクエリセットであり、5つの異なるIDを持っているためです。しかし、どうすればこの目標を達成できますか?:5つの場所と、これら5つの場所のそれぞれの評価を取得します。

4

2 に答える 2

2

あなたが試すことができます

all_locations = Locations.objects.all()[:5]
all_ratings = Rating.objects.filter(of_location__id__in=[location.id for location in all_locations])
于 2013-03-26T02:59:47.503 に答える
2

in値がリストに含まれていることを示すために使用できます。

locations_ids = [location.id for location in Locations.objects.all()[:5]]
all_ratings = Rating.objects.filter(location__id__in=locations_ids)
于 2013-03-26T03:00:02.923 に答える