class NotificationSerializer(serializers.ModelSerializer):

    creator = user_serializers.ListUserSerializer()
    image = image_serializers.SmallImageSerializer()

    class Meta:
        model = models.Notification
        fields = ("creator", "to", "notification_type", "image", "comment")
Example #2
0
class NotificationSerializer(serializers.ModelSerializer):

    creator = user_serializers.ListUserSerializer()
    image = image_serializers.SmallImageSerializer()

    class Meta:
            model = models.Notification
            fields = '__all__'
Example #3
0
    def get(self, request, image_id, format=None):

        likes = models.Like.objects.filter(image__id=image_id)

        like_creators_ids = likes.values('creator_id')

        users = user_models.User.objects.filter(id__in=like_creators_ids)

        serializer = user_serializers.ListUserSerializer(
            users, many=True, context={'request': request})

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Example #4
0
    def get(self, request, image_id, format=None):
        found_image = get_image(image_id)
        # 단수일 때는 found_image.creator 가 바로 찾아진다.
        # print(found_image.creator)
        # 결과가 복수일 때는 found_image.likes 이건 바로 안찾아진다. 한건이 아니기 때문이다.
        # 이때는 쿼리셋을 써서 다시 찾아줘야 한다. 
        # 다 찾으려면 found_image.likes.all()
        # 한건만 찾으려면 found_image.likes.get(id=6)
        # 한건만 찾으면 이제 필드명으로 접근이 가능하다. found_image.likes.get(id=6).creator
        
        # 지금 현재 내게 필요한 것은 3번 이미지를 좋아요 한 사람들의 username이나 id이다.
        # 두가지방법이 있다. 첫번째 방법은 for문을 돌리면서 id를 뽑아 내는 것이다.
        # like_creators_ids = []
        # for likes in found_image.likes.all():
        #     print(likes.creator_id) # values()를 호출했을 때 나오는 값으로 바로 호출
        #     print(likes.creator.id) # 객체 한번 더 타서 호출
        #     like_creators_ids.append(likes.creator.id)

        # 아니면 아래와 같이 values()를 이용하는 것이다.
        # print(found_image.likes.all().values())
        like_creators_ids = found_image.likes.values("creator_id")    
        users = user_models.User.objects.filter(id__in = like_creators_ids)
        serializer = user_serializers.ListUserSerializer(users, many=True)
        return Response(data=serializer.data, status=status.HTTP_200_OK)