Реализация системы добавления в избранное зарегистрированным пользователем
Всем привет! Никак не могу найти какую-либо информацию о реализации системы добавления в избранное для зарегистрированного пользователя.
В модели есть модель Post.
В ней пару полей формата String. Поле author, в котором указывается какой пользователь сделал POST запрос и тд.
Но как сделать так, чтобы пользователь мог добавить этот Post к себе в "избранное", чтобы потом можно было получить JSON ответ со всеми постами, которые он добавил себе. Ну и соответсвенно, чтобы можно было удалить из избранного.
Есть-ли какие-либо идеи?
Ответы (2 шт):
ну идея есть
добавить посту поле favorites = models.BooleanField(default=False)
добавить кнопку для поста избранное.
и написать обработчик этой кнопки который будет при нажатии менять значение поля favorites
Можно в модель Post добавить поле ManyToManyField с моделью User. И те кто будут добавлять себе Post в избранное будут создаваться в промежуточной таблице БД. В которой будет идентификатор поста и идентификатор пользователя. Что то вроде:
class Post(models.Model):
...
users = models.ManyToManyField(User, related_name='favorite_posts')
Для добавления постов избранное используется следующий код:
user.favorite_posts.add(Post.objects.get(id=1))
Для удаления:
user.favorite_posts.remove(Post.objects.get(id=1))
Достать все избранные посты:
user.favorite_posts.all()