From 1b1f99197443ece43fe4f1e04acbc7ad159f4b61 Mon Sep 17 00:00:00 2001 From: arastasci Date: Sun, 24 Nov 2024 22:57:18 +0300 Subject: [PATCH 1/2] fix: profile update pass request in context + check get posts --- backend/app/serializers.py | 12 +++++++++--- backend/app/views_directory/profileviews.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/app/serializers.py b/backend/app/serializers.py index ce2b53d9..36cf35c6 100644 --- a/backend/app/serializers.py +++ b/backend/app/serializers.py @@ -22,11 +22,17 @@ class Meta: def get_posts(self, obj): """Get posts created by the user, similar to get_post_details.""" posts = Post.objects.filter(author=obj.user) - user = self.context['request'].user + + request = self.context.get('request') + + if not request or not request.user.is_authenticated: + return [] + + user = request.user post_data = [] for post in posts: - is_liked = post.liked_by.filter(id=self.context['request'].user.id).exists() + is_liked = post.liked_by.filter(id=request.user.id).exists() is_bookmarked = Bookmark.objects.filter(user=user, post=post).exists() comments_data = [ @@ -35,7 +41,7 @@ def get_posts(self, obj): "content": comment.body, "author": comment.author.username, "created_at": comment.created_at, - "is_liked": comment.liked_by.filter(id=self.context['request'].user.id).exists(), + "is_liked": comment.liked_by.filter(id=request.user.id).exists(), "like_count": comment.liked_by.count(), } for comment in post.comments.all().order_by("-created_at") diff --git a/backend/app/views_directory/profileviews.py b/backend/app/views_directory/profileviews.py index 72fb07df..5fa975b4 100644 --- a/backend/app/views_directory/profileviews.py +++ b/backend/app/views_directory/profileviews.py @@ -23,7 +23,7 @@ def view_profile(request): def update_profile(request): user = request.user profile = get_object_or_404(Profile, user=user) - serializer = ProfileSerializer(profile, data=request.data, partial=True) + serializer = ProfileSerializer(profile, data=request.data, partial=True, context = {"request": request}) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) From 789c099f0c3a969183792f63c686af50f2307e0e Mon Sep 17 00:00:00 2001 From: arastasci Date: Sun, 24 Nov 2024 22:58:22 +0300 Subject: [PATCH 2/2] impr: do posts filtering after request check --- backend/app/serializers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/app/serializers.py b/backend/app/serializers.py index 36cf35c6..3463ff14 100644 --- a/backend/app/serializers.py +++ b/backend/app/serializers.py @@ -21,12 +21,13 @@ class Meta: def get_posts(self, obj): """Get posts created by the user, similar to get_post_details.""" - posts = Post.objects.filter(author=obj.user) request = self.context.get('request') if not request or not request.user.is_authenticated: return [] + + posts = Post.objects.filter(author=obj.user) user = request.user