Coverage for website/photos/api/v2/serializers/photo.py: 93.75%

16 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from rest_framework import serializers 

2 

3from photos.models import Photo 

4from thaliawebsite.api.v2.serializers import ThumbnailSerializer 

5from thaliawebsite.api.v2.serializers.cleaned_model_serializer import ( 

6 CleanedModelSerializer, 

7) 

8 

9 

10class PhotoSerializer(CleanedModelSerializer): 

11 """API serializer for photos.""" 

12 

13 class Meta: 

14 """Meta class for the serializer.""" 

15 

16 model = Photo 

17 fields = ("pk", "file") 

18 

19 file = ThumbnailSerializer( 

20 size_medium="photo_medium", 

21 size_large="photo_large", 

22 ) 

23 

24 

25class PhotoListSerializer(PhotoSerializer): 

26 class Meta: 

27 """Meta class for the serializer.""" 

28 

29 model = Photo 

30 fields = ( 

31 "pk", 

32 "file", 

33 "num_likes", 

34 "liked", 

35 ) 

36 

37 liked = serializers.SerializerMethodField("_liked") 

38 

39 def _liked(self, instance): 

40 return self.context["request"].member and instance.member_likes > 0