only prefetch groups if detailed serialization was queried

This commit is contained in:
Laura Klünder 2017-06-22 19:53:25 +02:00
parent 37d95700d3
commit 4d544610e5
2 changed files with 15 additions and 12 deletions

View file

@ -68,7 +68,7 @@ class Location(LocationSlug, SerializableMixin, models.Model):
self.titles = self.titles.copy()
def serialize(self, detailed=True, **kwargs):
result = super().serialize(**kwargs)
result = super().serialize(detailed=detailed, **kwargs)
if not detailed:
for key in set(result.keys()) - {'type', 'id', 'slug', 'title', 'target'}:
result.pop(key)
@ -150,9 +150,10 @@ class SpecificLocation(Location, models.Model):
class Meta:
abstract = True
def _serialize(self, **kwargs):
result = super()._serialize(**kwargs)
result['groups'] = list(g.pk for g in self.groups.all())
def _serialize(self, detailed=True, **kwargs):
result = super()._serialize(detailed=detailed, **kwargs)
if detailed:
result['groups'] = list(g.pk for g in self.groups.all())
return result