【发布时间】:2011-08-07 04:58:48
【问题描述】:
使用以下 django 模型:
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
class Book(models.Model):
name = models.CharField(max_length=300)
author = models.ForeignKey(Author)
pubdate = models.DateField()
class Meta:
ordering = ('-pubdate')
如何获得每位作者最新出版的五本书?
我曾考虑迭代每个作者,并将作者出版的书籍切片到 5。
for a in Author.objects.all():
books = Book.objects.filter(author = a )[:5]
print books #and/or process the entries...
但是,如果表格有很多记录(可能有数千本书),这可能会很慢且效率低。
那么,有没有其他方法可以使用 django(或 sql 查询)来完成此任务?
【问题讨论】:
标签: sql django django-queryset