0

私はこれをやろうとしています:

私は場所の評価記録の表を持っています。この表では、1 つの場所が複数の評価スコアを持つこともあります。しかし、検索を同じ場所の最後のレコードのみに制限したいと考えています。例えば:

=1 の 1つの場所にはid、1、2、4 の 3 つの評価スコアがあります。ユーザーが評価スコア 2 を検索すると、最後のレコードが 4 であるため、この場所は表示され ません。

編集
には、場所と評価の2つのテーブル(djangoモデル)があります。

私はこれを行うことができます:

all_locations = Location.objects.all()

次にテンプレで。評価テーブルlocations_ratingの外部キーの related_name です。locationID

{% for location in all_locations %}
  {{ location.locations_rating }}
{% endfor %}
4

3 に答える 3

3

models.py

class Location(models.Model):
    locationname = models.CharField(max_length=100)

    def __unicode__(self):
        return self.locationname

    def latest(self):
        return Rating.objects.values('rating').filter(von_location=self).order_by('-id')[0]

class Rating(models.Model):
   von_location = models.ForeignKey(Location,related_name="locations_rate")
   rating = models.IntegerField()

   def __unicode__(self):
        return "{0}".format(self.rating)

ビュー.py

all_locs = Location.objects.all()

テンプレート

{% for location in all_locs %}
   {{ location.locationname }} - {{ location.latest.rating }}<br/>
{% endfor %}
于 2013-04-05T03:36:34.527 に答える
1

これは純粋な推測ですが、このようなことができますか?

Rating.objects.filter(location_id=1).order_by(id).reverse()[0]
于 2013-04-05T02:35:39.877 に答える