Добавление объекта в поле ManyToMany не работает
У меня есть 2 модели:
class User(AbstractUser):
pass
class Post(models.Model):
poster = models.ForeignKey('User', on_delete=models.CASCADE, related_name='posts')
body = models.TextField()
likes = models.IntegerField(default=0)
likers = models.ManyToManyField('User', blank=True, null=True, related_name='liked_posts')
Модель Post имеет много полей в модели User. Я пытаюсь добавить объект пользователя в поле с помощью функции представления ниже, но это не работает.
Когда я проверяю пост на странице администратора, пользователь не добавляется в число лайкеров.
@csrf_exempt
def likepost(request, like, post_id):
if (request.method == 'PUT'):
post = Post.objects.get(pk=post_id)
if like:
post.likers.add(request.user)
else:
post.likers.remove(request.user)
post.save()
print(post.likers)
return HttpResponse(status=204)
else:
return JsonResponse({
'error': 'PUT request required.'
}, status=400)
Я делаю запрос в javascript таким образом:
fetch(`likepost/${likeValue}/${postId}`, {
method: 'PUT'
});