【发布时间】:2016-02-08 19:49:09
【问题描述】:
我有一个图书模型和一个评分模型,
class Book(models.Model):
title = models.CharField(max_length=255)
slug = AutoSlugField(unique=True, populate_from='title')
description = models.TextField()
# more fields
class Rating(models.Model):
book = models.ForeignKey('library.Book')
score = models.DecimalField(max_digits=2, decimal_places=1)
查询,
books = {'books': Book.objects.filter(pk__in=Rating.objects.all().order_by('-score'
).values_list('book__id', flat=True))[:10] }
模板,
{% for i in books %}
{{ i.title }}, {{ i.rating_set.all.first.score }} <br/>
{% endfor %}
将模型渲染到模板,但 django 调试工具栏显示为 Duplicated n 次,其中 n 是列表中对象的数量。当我使用查询集缓存时,这是正常的。
后面发生了什么,我该如何解决?
谢谢。
【问题讨论】:
标签: python django django-templates django-queryset