1

我正在尝试为每个作者获取最新的 3 本书,使用 DateField 作为日期。任何想法如何使用 Django ORM 或原始 SQL 来做到这一点?

class Author(models.Model):                                                                                                                                                                                                                                                              
    name = models.CharField('Name', max_length=100)                                                                                                
    slug = models.SlugField('Slug', max_length=100, unique=True)                                                                                      

class Book(models.Model):                                                                                                                                                                                                                                                               
    author = models.ForeignKey(Author, verbose_name='Author')                                                                       
    published = models.DateField('Published on', db_index=True)                          
4

1 回答 1

0

您可以遍历所有作者,为每个作者选择 3 本最新书籍并将它们添加到全局列表中:

books = []
for x in Author.objects.all():
   bookslist = Book.objects.filter(author=x).order_by('-published')[:3]
   for book in bookslist:
      books.append(book)
于 2012-08-14T10:19:10.730 回答