1

日付に DateField を使用して、著者ごとに最新の 3 冊の本を取得しようとしています。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 に答える