Здравствуйте.
Пытаюсь просериализовать несколько объектов(юзеров) используя django rest framework и его сериализаторы.
Сейчас данный код выглядит вот так:
class UserSearchSerializer(serializers.ModelSerializer):
info = UserProfileSerializer(many=True, read_only=True)
follow = serializers.SerializerMethodField('check_follow')
like = serializers.SerializerMethodField('check_like')
def check_follow(self, obj):
user_id = self.context.get("user_id")
user_has_followed = False
try:
user_has_followed = bool(Follow.objects.filter(user_who_follow_id=user_id))
except Exception:
raise user_has_followed
return user_has_followed
def check_like(self, obj):
user_id = self.context.get("user_id")
user_has_like = False
try:
user_has_like = bool(Like.objects.filter(user_who_like_id=user_id))
except Exception:
raise user_has_like
return user_has_like
class Meta:
model = User
fields = ('id', 'username', 'first_name', 'last_name', 'email', 'info', 'follow', 'like')
Но при сериализации объектов отдает одно и тоже значение для всех(поля: like/follow)
Тоесть если у одного юзера с другим есть отношения "фоллов", то сериалайзер вернет всем юзерам true в этом поле. Что я упускаю?