0

Location と Rate という 2 つのテーブルがあります。

料金表には次の項目があります。ここに画像の説明を入力

von_location は Location テーブルへの外部キーです。

希望レートで場所を取得したい。ロマンチックな場所を検索すると2、ID の場所が取得されます5。これでいいです。しかし、ロマンチックな場所も検索すると3、id の場所も取得されます5。しかし、私はこのロジックが欲しい:

1 つの場所に 2 つのレートがある場合は、最新のものを取得します。どうすればdjangoでこれを行うことができますか?

私のモデルは次のとおりです。

class Location(models.Model):
 name = models.TextField()
 adres = models.TextField()

class Rate(models.Model):
 von_location = models.ForeignKey(Location,related_name='locations_bewertung')
 bewertung = models.IntegerField(max_length=2)
 romantic = models.IntegerField(max_length=2)
 priceleistung = models.IntegerField(max_length=2)
 datum = DateTimeField(auto_add_now=True)

質問に関係のない列をいくつか削除しました

私はこれを試しました:

locations = Location.objects.filter(**s_kwargs).order_by('locations_bewertung').distinct('locations_bewertung')

私はまだ両方のクエリで同じ場所を取得しています。2、および3

4

2 に答える 2

1

Locationでフィルタリングしようとしているのか、 でフィルタリングしようとしているのか混乱していますRateRateあなたの紹介は、 (romanticそのモデルに属しているため)でフィルタリングしたいことを意味しますが、サンプルクエリはでフィルタリングしていLocationます。

一連のクエリ パラメータに関連付けられたLocation最新のものを検索する場合は、次のようにしてみてください。Rate

location = Rate.objects.filter(romantic=something).latest('datum').von_location
于 2013-08-11T11:20:45.300 に答える