django связанный менеджер - в шаблоне
Я пытаюсь показать последнюю оценку рейтинга местоположения. у меня есть 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 %}
Могут ли соответствующие менеджеры делать подобные вещи?
1 ответ
Решение
Мой ответ на ваш другой связанный вопрос:
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)
views.py
all_locs = Location.objects.all()
шаблон
{% for location in all_locs %}
{{ location.locationname }} - {{ location.latest.rating }}<br/>
{% endfor %}