Как в django реализовать подписку на автора в view-функции?
Есть модель Post
class Post(models.Model):
text = models.TextField(
'Текст поста',
help_text='Введите текст поста',
)
pub_date = models.DateTimeField(
'Дата публикации',
auto_now_add=True,
)
author = models.ForeignKey(
User,
on_delete=models.CASCADE,
verbose_name='Автор',
related_name='posts'
)
group = models.ForeignKey(
Group,
on_delete=models.SET_NULL,
blank=True,
null=True,
related_name='posts',
verbose_name='Группа',
help_text='Выберите группу'
)
image = models.ImageField(
'Картинка',
upload_to='posts/',
blank=True,
)
def __str__(self) -> str:
return self.text[:15]
class Meta:
ordering = ['-pub_date']
verbose_name = 'Пост'
verbose_name_plural = 'Посты'
Есть модель Follow (m2m)
class Follow(models.Model):
user = models.ForeignKey(
User,
related_name='follower',
on_delete=models.CASCADE
)
author = models.ForeignKey(
User,
related_name='following',
on_delete=models.CASCADE
)
И есть вот такие вьюшки
@login_required
def follow_index(request):
posts = Post.objects.filter(author__following__user=request.user)
page_obj = get_page(posts, AMOUNT_POSTS, request)
context = {
'page_obj': page_obj,
}
return render(request, 'posts/follow.html', context)
@login_required
def profile_follow(request, username):
# Подписаться на автора
...
return redirect(
'posts:profile_unfollow',
)
@login_required
def profile_unfollow(request, username):
# Отписаться
...
return redirect(
'posts:profile_follow'
)
Собственно, как реализовать последние две функции, чтобы реализовывалась подписка на автора поста
Источник: Stack Overflow на русском