class NotificationSerializer(serializers.ModelSerializer): creator = user_serializers.UserListSerializer() to = user_serializers.UserListSerializer() video = video_serializers.VideoListSerializer() class Meta: model = models.Notification fields = ('creator', 'to', 'notification_type', 'video', 'comment', 'natural_time')
def get(self, request, reply_id, format=None): likes = models.ReplyLike.objects.filter(reply__id=reply_id) like_creators_id = likes.values('creator_id') like_users = user_models.User.objects.filter(id__in=like_creators_id) serializer = user_serializers.UserListSerializer( like_users, many=True, context={"request": request}) return Response(data=serializer.data, status=status.HTTP_200_OK)
def get(self, request, comment_id, format=None): unlikes = models.CommentUnlike.objects.filter(comment__id=comment_id) unlike_creators_id = unlikes.values('creator_id') unlike_users = user_models.User.objects.filter( id__in=unlike_creators_id) serializer = user_serializers.UserListSerializer( unlike_users, many=True, context={"request": request}) return Response(data=serializer.data, status=status.HTTP_200_OK)
def get(self, request, video_id, format=None): likes = models.VideoLike.objects.filter(video__id=video_id) like_creators_id = likes.values('creator_id') # values 라는 함수는 likes라는 오브젝트안에서 가져올수 있는 값들을 정해줌 # 그 중에 creator_id가 존재하기 때문에 __ 가 아닌 _ 만 써도 되는것 # 만약 creator__id 라고 쓰면 이건 deep relationship으로 얻는 거 # creator_id라고 쓰면 이건그냥 values라는 함수가 제공해주는 어떠한 key에 대한 값을 가져오는것 like_users = user_models.User.objects.filter(id__in=like_creators_id) serializer = user_serializers.UserListSerializer( like_users, many=True, context={"request": request}) return Response(data=serializer.data, status=status.HTTP_200_OK)