4

場所の最新の評価スコアを表示しようとしています。私は2つのテーブル(djangoモデル)を持っています

Class Location(models.Model):
   locationname = models.CharField()
   ...

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

現在、私のデータベースでは、1 つの場所 (id=1) に 3 つの評価 (1,2,4) があります。

場所の評価で最新のレコードを表示したい。関連するマネージャーを使用してテンプレートでこれを行うことはできますか?

私のビジョンは:

all_locs = Location.objects.all()

次にテンプレートで:

{% for location in all_locs %}
   {{ location.locations_rate.latest }}
{% endfor %}

relatedmanager はこの種のことを行うことができますか?

4

1 に答える 1

7

あなたの他の関連する質問での私の答え:

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:51:36.033 に答える