示例#1
0
def profile(request, member_id=None):
    decode_pk = int(decode(enc=str(member_id)))

    if request.user.is_authenticated:
        try:
            member = User.objects.filter(pk=decode_pk).get()
            if request.user == member:
                response = render_to_response("view/profile.html", {
                    "login": True,
                    "is_user": True
                })
                return response
            response = render_to_response("view/profile.html", {
                "login": True,
                "is_user": False
            })
            return response
        except ObjectDoesNotExist:

            response = render_to_response("view/profile.html", {
                "login": True,
                "is_user": False
            })
            return response
    response = render_to_response("view/profile.html", {
        "login": False,
        "is_user": False
    })
    return response
    def post(self, request):
        member_id = self.request.data['pk']
        decode_pk = int(decode(enc=str(member_id)))

        member = User.objects.filter(pk=decode_pk).get()
        user = self.request.user

        if user == member:
            try:
                profile = Profile.objects.select_related('user').filter(
                    user=user).get()
                serializer = ProfileSubSerializer(
                    profile, context={'user': self.request.user})

                if serializer:
                    return Response(serializer.data, status=status.HTTP_200_OK)
                return Response({
                    "code": 500,
                    "message": kr_error_code(500)
                },
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
            except ObjectDoesNotExist:
                return Response({
                    "username": user.username,
                    "intro": "-",
                },
                                status=status.HTTP_200_OK)
        else:
            try:
                profile = Profile.objects.select_related('user').filter(
                    user=member).get()
                serializer = ProfileSubSerializer(
                    profile, context={'user': self.request.user})

                if serializer:
                    return Response(serializer.data, status=status.HTTP_200_OK)
                return Response({
                    "code": 500,
                    "message": kr_error_code(500)
                },
                                status=status.HTTP_500_INTERNAL_SERVER_ERROR)
            except ObjectDoesNotExist:
                return Response({
                    "username": member.username,
                    "intro": "-",
                },
                                status=status.HTTP_200_OK)
    def list(self, request, *args, **kwargs):
        pk = self.request.data['pk']
        decode_pk = int(decode(enc=str(pk)))
        user = User.objects.filter(pk=decode_pk).get()
        try:
            temp = Temp.objects.select_related('author').filter(
                author=user).all()
            post = Post.objects.select_related('author').filter(
                author=user).all()

            all_post = sorted(chain(temp, post),
                              key=attrgetter('created_date'),
                              reverse=True)

            page = self.paginate_queryset(all_post)
            serializer = MyPublishPostSerializer(all_post, many=True)

            if page is not None:
                serializer = MyPublishPostSerializer(page, many=True)
                return self.get_paginated_response(serializer.data)
            return Response(serializer.data)
        except ObjectDoesNotExist:
            return Response('', 200)
    def get(self, request, *args, **kwargs):
        user = self.request.user
        user_pk = self.kwargs.get('user_pk')
        decode_pk = int(decode(enc=str(user_pk)))

        try:
            to_user = User.objects.filter(pk=decode_pk).get()
            result, relation = Relation.objects.select_related(
                'to_user', 'from_user').get_or_create(to_user=to_user,
                                                      from_user=user)

            if relation:
                return Response({
                    'detail': 'created',
                    "author": {
                        "follow_status":
                        True,
                        "follower":
                        Relation.objects.select_related('from_user').filter(
                            from_user=user).count()
                    }
                })
            result.delete()
            return Response({
                'detail': 'deleted',
                "author": {
                    "follow_status": False
                }
            })

        except ObjectDoesNotExist:
            return Response({
                "code": 500,
                "message": kr_error_code(500)
            },
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
    def get(self, request, *args, **kwargs):
        user_pk = self.kwargs.get('user_pk')

        user = self.request.user

        decode_pk = int(decode(enc=str(user_pk)))

        try:
            to_user = User.objects.filter(pk=decode_pk).get()
            serializer = FollowStatusSerializer(to_user,
                                                context={'request': request})
            if serializer:
                return Response(serializer.data, status=status.HTTP_200_OK)
            return Response({
                "code": 500,
                "message": kr_error_code(500)
            },
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
        except ObjectDoesNotExist:
            return Response({
                "code": 500,
                "message": kr_error_code(500)
            },
                            status=status.HTTP_500_INTERNAL_SERVER_ERROR)
    def post(self, request):
        member_id = self.request.data['pk']
        decode_pk = int(decode(enc=str(member_id)))

        try:
            member = User.objects.filter(pk=decode_pk).get()
            user = self.request.user

            if user == member:
                try:
                    profile = Profile.objects.select_related('user').filter(
                        user=user).get()
                    serializer = ProfileMainSerializer(profile)

                    if serializer:
                        return Response(serializer.data,
                                        status=status.HTTP_200_OK)
                    return Response(
                        {
                            "code": 500,
                            "message": kr_error_code(500)
                        },
                        status=status.HTTP_500_INTERNAL_SERVER_ERROR)
                except ObjectDoesNotExist:
                    try:
                        profile_image = ProfileImage.objects.select_related(
                            'user').filter(user=user).get()
                        serializer = ProfileImageSerializer(profile_image)
                        return Response(
                            {
                                "nickname":
                                user.nickname,
                                "waiting":
                                WaitingRelation.objects.select_related(
                                    'receive_user').filter(
                                        receive_user=user).count(),
                                "post_count":
                                Post.objects.filter(author=user).count(),
                                "point":
                                user.point,
                                "intro":
                                "- ",
                                "following":
                                Relation.objects.select_related(
                                    'from_user',
                                    'to_user').filter(from_user=user).count(),
                                "follower":
                                Relation.objects.select_related(
                                    'to_user',
                                    'from_user').filter(to_user=user).count(),
                                "image":
                                serializer.data
                            },
                            status=status.HTTP_200_OK)

                    except ObjectDoesNotExist:
                        return Response(
                            {
                                "nickname":
                                user.nickname,
                                "waiting":
                                WaitingRelation.objects.select_related(
                                    'receive_user').filter(
                                        receive_user=user).count(),
                                "post_count":
                                Post.objects.filter(author=user).count(),
                                "point":
                                user.point,
                                "intro":
                                "-",
                                "following":
                                Relation.objects.select_related(
                                    'from_user',
                                    'to_user').filter(from_user=user).count(),
                                "follower":
                                Relation.objects.select_related(
                                    'to_user',
                                    'from_user').filter(to_user=user).count(),
                                "image": {
                                    "profile_image":
                                    "https://static.octocolumn.com/media/example/2_x20_.jpeg",
                                    "cover_image":
                                    "https://static.octocolumn.com/media/example/1.jpeg"
                                }
                            },
                            status=status.HTTP_200_OK)
            else:
                try:
                    profile_image = ProfileImage.objects.select_related(
                        'user').filter(user=member).get()
                    serializer = ProfileImageSerializer(profile_image)
                    return Response(
                        {
                            "nickname":
                            member.nickname,
                            "waiting":
                            WaitingRelation.objects.select_related(
                                'receive_user').filter(
                                    receive_user=member).count(),
                            "post_count":
                            Post.objects.filter(author=member).count(),
                            "intro":
                            "-",
                            "following":
                            Relation.objects.select_related(
                                'from_user',
                                'to_user').filter(from_user=member).count(),
                            "follower":
                            Relation.objects.select_related(
                                'to_user',
                                'from_user').filter(to_user=member).count(),
                            "image":
                            serializer.data
                        },
                        status=status.HTTP_200_OK)

                except ObjectDoesNotExist:
                    return Response(
                        {
                            "nickname":
                            member.nickname,
                            "waiting":
                            WaitingRelation.objects.select_related(
                                'receive_user').filter(
                                    receive_user=member).count(),
                            "post_count":
                            Post.objects.filter(author=member).count(),
                            "intro":
                            "-",
                            "following":
                            Relation.objects.select_related(
                                'from_user',
                                'to_user').filter(from_user=member).count(),
                            "follower":
                            Relation.objects.select_related(
                                'to_user',
                                'from_user').filter(to_user=member).count(),
                            "image": {
                                "profile_image":
                                "https://static.octocolumn.com/media/example/2_x20_.jpeg",
                                "cover_image":
                                "https://static.octocolumn.com/media/example/1.jpeg"
                            }
                        },
                        status=status.HTTP_200_OK)
        except ObjectDoesNotExist:
            return Response({''})