ARTICLE AD BOX
models.py
class Post(models.Model): content = models.TextField() created = models.DateTimeField(auto_now_add=True) suspended = models.BooleanField(default=False) user = models.ForeignKey(User, on_delete=models.CASCADE) class Follow(models.Model): follower = models.ForeignKey(User, related_name='followings', on_delete=models.CASCADE) following = models.ForeignKey(User, related_name='followers', on_delete=models.CASCADE) created = models.DateTimeField(auto_now_add=True) class Meta: unique_together = ('follower', 'following')serializer.py
class PostSerializer(serializers.ModelSerializer): user = UserSerializer(read_only=True) class UserSerializer(serializers.ModelSerializer): is_following = serializers.BooleanField(read_only=True)views.py
class PostViewSet(ModelViewSet): serializer_class = PostSerializer permission_classes = [IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly] def get_queryset(self): queryset = Post.objects.filter( suspended=False ).select_related( 'user' ) if self.request.user.is_authenticated: queryset = queryset.annotate( user__is_following=Exists( Follow.objects.filter( follower=self.request.user, following=OuterRef("user_id") ) ) ) else: queryset = queryset.annotate( user__is_following=Value(False) ) return querysetI can’t check is_following inside the user object.
In my post list, I’m using a nested serializer to get user information for each post, but I’m failing when trying to check is_following. I want to understand where I went wrong, as I’m new to DRF.
Edit
{ "next": "http://localhost:8000/v1/posts/?cursor=cD0yMDI2LTAzLTA2KzIxJTNBMDclM0E0Ny43NTc4MDklMkIwMCUzQTAw", "previous": null, "results": [ { "content": "deneme 22", "created": "2026-03-06T21:08:12.630305Z", "id": 22, "suspended": false, "user": { "date_joined": "2026-03-06T21:05:15.279892Z", "email": "[email protected]", "first_name": "", "id": 1, "is_active": true, >>>> "is_following", >>>> This field is not showing!! "last_name": "", "username": "erkan.unluturk" } } ] }