Пример #1
0
    def get(self, request, image_id, format=None):
        # likes = models.Like.objects.filter(image__id=image_id)
        # users = user_models.User.objects.filter(id__in=likes.values('creator_id'))

        users = user_models.User.objects.filter(like__image=image_id)
        serializer = user_serializers.ListUserSerializer(users, many=True)
        return Response(status=status.HTTP_200_OK, data=serializer.data)
Пример #2
0
class NotificationSerializer(serializers.ModelSerializer):
    creator = user_serializers.ListUserSerializer()
    image = image_serializers.SmallImageSerializer()

    class Meta:
        model = models.Notification
        fields = '__all__'
Пример #3
0
class NotificationSerializer(serializers.ModelSerializer):

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

    class Meta:
        model = models.Notification
        fields = ('id', 'creator', 'created_at', 'updated_at',
                  'notification_type', 'image', 'to')
Пример #4
0
class NotificationSerializer(serializers.ModelSerializer):

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

    class Meta:
        model = models.Notifications
        fields = ('id', 'creator', 'image', 'notification_type', 'comment',
                  'to', 'natural_time')
Пример #5
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)
        return Response(data=serializer.data, status=200)
Пример #6
0
    def get(self, request, image_id, format=None):
        likes = models.Like.objects.filter(image__id=image_id)
        like_creator_ids = likes.values('creator_id')
        # -> https://docs.djangoproject.com/ko/2.1/ref/models/querysets/#django.db.models.query.QuerySet.values

        users = user_models.User.objects.filter(id__in=like_creator_ids)
        # -> 누가 이 이미지를 '좋아요' 했는지가 궁금해!
        serializer = user_serializers.ListUserSerializer(users, many=True)
        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #7
0
    def get(self, request, image_id, format=None):

        likes = models.Like.objects.filter(image__id=image_id)
        # __는 여기서 like의 id가 아닌 image 오브젝트 안에 있다는 것을 의미함
        # 그냥 image_id의 _는 그냥 변수 이름의 일부이다. 우리 개발자가 임의로 작성한
        # 여기까지는  그냥 좋아요 리스트를 알 수 있다. 그리고 like.values()로 id를 포함한 내부 정보를 추출할 수 있다.
        like_creators_ids = likes.values('creator_id')
        users = user_models.User.objects.filter(id__in=like_creators_ids)
        # __in은 "__in=array"이란 형태에서 array의 요소를 하나하나 '='(같은지) 체크해준다. 일종의 반복문으로 길게 쓸것을 줄이는 개념이다.
        # 즉 여기서는 id 하나와 여러개의 id를 가진 array인 like_creators_ids를 각각 비교해준다,.
        serializer = user_serializers.ListUserSerializer(users, many=True)
        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #8
0
    def get(self, request, image_id, format=None):

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

        likes_creators_ids = likes.values('creator_id')

        # likes_creators_ids 안에 있는 id를 찾기 위해 id__in 이라고 함
        users = user_models.User.objects.filter(id__in=likes_creators_ids)

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

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #9
0
    def get(self, request, image_id, format=None):
        """image_id의 image를 좋아요한 유저 리스트를 보여준다."""

        likes = models.Like.objects.filter(image__id=image_id)
        #print(likes.values()) # [values()] https://docs.djangoproject.com/en/2.2/ref/models/querysets/#values

        like_creators_ids = likes.values('creator_id') # like object들의 creator의 id 리스트를 뽑음
        like_creators = user_models.User.objects.filter(id__in=like_creators_ids) # array를 돌면서 user object filter

        serializer = user_serializers.ListUserSerializer(like_creators, many=True)

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #10
0
    def get(self, request, image_id, fortmat=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)  # id__in means 'Search user_id in array'

        serializer = user_serializers.ListUserSerializer(users, many=True)

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #11
0
    def get(self, request, image_id, format=None):

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

        # 찾고 싶은 값이 있으면 values로해서 찾고 그 안에 key값으로 원하는 값을 가질 수 있다.
        like_creator_ids = likes.values('creator_id')

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

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

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #12
0
    def get(self, request, image_id, format=None):

        user = request.user

        likes = models.Like.objects.filter(image__id=image_id)
        creator_ids = likes.values('creator_id')
        creators = user_models.User.objects.filter(id__in=creator_ids)

        if likes.count() == 0:
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = user_serializers.ListUserSerializer(creators, many=True)
        return Response(serializer.data, status=status.HTTP_200_OK)
Пример #13
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')
        # likes를 생성한 user 를 usermodel안에서 찾는다.

        # print(likes.values('creator_id'))
        # 해당 list의 내부의 값도 볼 수가 있다.
        users = user_models.User.objects.filter(id__in=like_creators_ids)
        # array 안에 있는 user id를 검색한다.
        serializer = user_serializers.ListUserSerializer(
            users, many=True, context={'request': request})

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #14
0
    def get(self, request, image_id, format=None):

        try:
            likes = models.Like.objects.filter(image__id=image_id)
        except ObjectDoesNotExist:
            return Response(status=status.HTTP_404_NOT_FOUND)

        like_creator_id = likes.values('creator_id')
        users = user_model.User.objects.filter(id__in=like_creator_id).exclude(
            id=request.user.id)

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

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #15
0
    def get(self, request, image_id, format=None):
        print('좋아요')
        # 좋아요 누른 사람 싹 긁어오고
        likes = models.Like.objects.filter(image__id=image_id)

        # 그 중 아이디를 가져와서
        like_creaters_ids = likes.values('creater_id')

        #필터로 걸러서 가져와서
        users = user_models.User.objects.filter(id__in=like_creaters_ids)

        # 시리얼라이저로 보여줄 값 정의해주기
        serializer = user_serializers.ListUserSerializer(
            users, many=True, context={'request': request})

        return Response(data=serializer.data, status=status.HTTP_200_OK)
Пример #16
0
    def get(self, request, image_id, format=None):
        likes = models.Like.objects.filter(image__id=image_id)

        # 1. 해당글의 likes 인원 조회
        print(likes)

        # 2. 좋아요를 만든 유저들의 리스트를 생성
        print(likes.values('creator_id'))
        like_creator_ids = likes.values('creator_id')

        # 3. 유저 모델에서 해당 유저리스트의 유저 정보를 조회
        users = user_model.User.objects.filter(id__in=like_creator_ids)

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

        return Response(data=serializer.data, status=status.HTTP_200_OK)

        print(users)