Любая помощь, почему здесь возвращается один и тот же статус в каждом объекте?
Итак, у меня есть конечная точка поиска, которая будет получать пользователей, содержащих определенную запись, и проверять, есть ли среди них продолжающиеся дружеские отношения.
Моя конечная точка:
path('filter/', SearchUserByStringAPIView.as_view()),
Мое мнение:
class SearchUserByStringAPIView(ListAPIView):
queryset = User.objects.all()
serializer_class = UserProfileSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
queryset = self.queryset.filter(username__icontains=self.request.query_params.get('search'))
return queryset
Мой сериализатор:
class UserProfileSerializer(serializers.ModelSerializer):
friendship = serializers.SerializerMethodField()
def get_friendship(self, obj):
user_obj = self.instance.values_list('id')
friends_obj = Friend.objects.filter(Q(receiver=self.context['request'].user) | Q(requester=self.context['request'].user)).values_list('requester', 'receiver', 'status')
if not friends_obj:
pass
else:
for f in friends_obj:
for i in user_obj:
if int(i[0]) in f:
return str(f[2])
pass
class Meta:
model = User
fields = ['id', 'username', 'about_me', 'avatar', 'friendship']
Мой ответ:
[
{
"id": 2,
"username": "BB",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 3,
"username": "BiG",
"about_me": "",
"avatar": "http://127.0.0.1:8000/media-files/BigG/Screen_Shot_2022-11-14_at_22.06.55.png",
"friendship": "A"
},
{
"id": 7,
"username": "babybabybear",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 13,
"username": "shadabjamil",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 14,
"username": "sirberkut",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 17,
"username": "buddlehman",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 20,
"username": "tforbes",
"about_me": "",
"avatar": null,
"friendship": "A"
},
{
"id": 30,
"username": "ol99bg",
"about_me": "",
"avatar": null,
"friendship": "A"
}
]
Теперь это пользователи из моего поиска, и согласно моему объекту Friend только первые 2 пользователя должны иметь статус 'A', а остальные не должны иметь никакого статуса
Что я делаю не так?