django - Queryset, get only one of reverse relationships -
class foo(models.model): name = charfield createdat = datetimefield class bar(models.model): rel = foreignkey(foo, related_name='bars') createdat = datetimefield
foo.prefetch_related('bars').all()
gives me bars. there way can latest bar
each foo
, using 1 query?
you want use prefetch
object, here in docs.
prefetch()
lets filter query, in example:
queryset = bar.objects.latest('createdat') latest_bars = foo.objects.prefetch_related( prefetch( 'bars', queryset, to_attr="latest_bar" ) ) the_latest_bar_for_first_foo = latest_bars[0].latest_bar
Comments
Post a Comment