Я студент, изучающий фреймворк отдыха django
Я делаю простой sns с фреймворком отдыха django
Мне нужна система следования за последователем. Итак, я попытался сделать это, но есть некоторая проблема
Кулак, это моя пользовательская модель с AbstractBaseUser и PermissionsMixin
class User(AbstractBaseUser, PermissionsMixin):
user_id = models.CharField(max_length=100, unique=True, primary_key=True)
name = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
is_staff = models.BooleanField(default=False)
followers = models.ManyToManyField('self', related_name='follower',blank=True)
following = models.ManyToManyField('self', related_name='following',blank=True)
profile_image = models.ImageField(blank=True)
полевые последователи - это люди, которые следуют за мной, а следующие - это те, кого яfollow
Когда я добавляю подписку с этим классом APIView
class AddFollower(APIView):
permission_classes = [IsAuthenticated, ]
def post(self, requset, format=None):
user = User.objects.get(user_id=self.request.data.get('user_id'))
follow = User.objects.get(user_id=self.request.data.get('follow'))
user.following.add(follow)
user.save()
follow.followers.add(user)
follow.save()
print(str(user) + ", " + str(follow))
return JsonResponse({'status':status.HTTP_200_OK, 'data':"", 'message':"follow"+str(follow.user_id)})
Идентификатор пользователя - это я, а подписчик - это тот, за кем я хочу следовать
Я хочу добавить подписку к user_idСледующее поле и добавьте user_id в поле подписчиков
Но это не работает
То, что я хочу для результата, выглядит следующим образом (с пользовательским интерфейсом API)
{
"followers": [],
"following": [
"some user"
],
}
someинформация о пользователе
{
"followers": [
"user above"
],
"following": [
],
}
Но реальный результат такой:
{
"followers": [
"some user"
],
"following": [
"some user"
],
}
Информация о каком-то пользователе
{
"followers": [
"user above"
],
"following": [
"user above"
],
}
это не то, что я хочу
Понятия не имею с этой проблемой, мне нужна помощь
Спасибо