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()

现在在我的数据库中,一个位置(id=1)有 3 个评级(1,2,4)。

我想显示一个位置的最新评分记录。我可以以某种方式使用相关管理器在模板中执行此操作吗?

我的愿景是:

all_locs = Location.objects.all()

然后在模板中:

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

相关经理可以做这种事情吗?

4

1 回答 1

7

我在您的其他相关问题中的回答:

模型.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 回答