プリフェッチされたオブジェクトをフィルタリングする方法はありますか? プリフェッチされたオブジェクトの latest() を取得する必要がありますが、クエリが変更されているため、latest を使用すると prefetch_related が機能しませんか?
ここの例は私が必要とすることを行いますが、もっと簡単な回避策があることを望んでいました...
プリフェッチされたオブジェクトをフィルタリングする方法はありますか? プリフェッチされたオブジェクトの latest() を取得する必要がありますが、クエリが変更されているため、latest を使用すると prefetch_related が機能しませんか?
ここの例は私が必要とすることを行いますが、もっと簡単な回避策があることを望んでいました...
Django 1.7 では、プリフェッチされたオブジェクトのフィルタリングが可能です。この SO の回答とDjango のドキュメントを参照してください。
これは非常に単純な方法であり、これらのアプリとほとんど比較できませんが、役立つことを願っています。
class Author(models.Model):
name = models.CharField(max_length=100)
def latest_book(self):
return max(self.book_set.all(), key=lambda book: book.created)
authors = Author.objects.prefetch_related('book_set')
authors[0].latest_book() # what you wanted