diff options
| -rw-r--r-- | pydis_site/apps/api/serializers.py | 9 | ||||
| -rw-r--r-- | pydis_site/apps/api/viewsets/bot/infraction.py | 6 | 
2 files changed, 7 insertions, 8 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index d7cdfd7e..cfd975c9 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -505,13 +505,8 @@ class ExpandedInfractionSerializer(InfractionSerializer):          """Return the dictionary representation of this infraction."""          ret = super().to_representation(instance) -        user = User.objects.get(id=ret['user']) -        user_data = UserSerializer(user).data -        ret['user'] = user_data - -        actor = User.objects.get(id=ret['actor']) -        actor_data = UserSerializer(actor).data -        ret['actor'] = actor_data +        ret['user'] = UserSerializer(instance.user).data +        ret['actor'] = UserSerializer(instance.actor).data          return ret diff --git a/pydis_site/apps/api/viewsets/bot/infraction.py b/pydis_site/apps/api/viewsets/bot/infraction.py index 09c05a74..8da82822 100644 --- a/pydis_site/apps/api/viewsets/bot/infraction.py +++ b/pydis_site/apps/api/viewsets/bot/infraction.py @@ -230,7 +230,11 @@ class InfractionViewSet(                  })              additional_filters['type__in'] = [i.strip() for i in filter_types.split(",")] -        return self.queryset.filter(**additional_filters) +        qs = self.queryset.filter(**additional_filters) +        if self.serializer_class is ExpandedInfractionSerializer: +            return qs.prefetch_related('actor', 'user') + +        return qs      @action(url_path='expanded', detail=False)      def list_expanded(self, *args, **kwargs) -> Response:  |