def get_queryset(self):
return CoverLetter.objects.all()\
- .select_related('project', 'submitter', 'series')\
+ .select_related('project', 'submitter', 'series__project')\
.defer('content', 'headers')
def get_queryset(self):
return Event.objects.all()\
- .prefetch_related('project', 'patch', 'series', 'cover',
- 'previous_state', 'current_state',
+ .prefetch_related('project', 'patch__project', 'series__project',
+ 'cover', 'previous_state', 'current_state',
'previous_delegate', 'current_delegate',
'created_check')
return Patch.objects.all()\
.prefetch_related('check_set')\
.select_related('project', 'state', 'submitter', 'delegate',
- 'series')\
+ 'series__project')\
.defer('content', 'diff', 'headers')
serializer_class = SeriesSerializer
def get_queryset(self):
- return Series.objects.all().prefetch_related('patches',)\
- .select_related('submitter', 'cover_letter', 'project')
+ return Series.objects.all()\
+ .prefetch_related('patches__project',)\
+ .select_related('submitter', 'cover_letter__project', 'project')
class SeriesList(SeriesMixin, ListAPIView):
series = create_series()
create_covers(5, series=series)
- # FIXME(stephenfin): This should result in 2 queries
- with self.assertNumQueries(3):
+ with self.assertNumQueries(2):
self.client.get(self.api_url())
@utils.store_samples('cover-detail')
for _ in range(3):
self._create_events()
- # FIXME(stephenfin): This should result in 28 queries
- with self.assertNumQueries(32):
+ with self.assertNumQueries(28):
self.client.get(self.api_url())
def test_order_by_date_default(self):
series = create_series()
create_patches(5, series=series)
- # FIXME(stephenfin): This should result in 3 queries
- with self.assertNumQueries(8):
+ with self.assertNumQueries(3):
self.client.get(self.api_url())
@utils.store_samples('patch-detail')
"""Ensure we retrieve the embedded cover letter project once."""
self._create_series()
- # FIXME(stephenfin): This should result in 4 queries
- with self.assertNumQueries(5):
+ with self.assertNumQueries(4):
self.client.get(self.api_url())
@utils.store_samples('series-detail')