Как показать пользователю понравившиеся ему посты (или фильмы)?
У меня есть страница профиля пользователя, где я хочу показать пользователю фильмы, которые ему понравились. Вот часть модели, которая содержит поле like как ManyToManyField.
class moviefiles(models.Model):
name = models.CharField(max_length=50)
duration = models.CharField(max_length=20)
.
.
.
liked = models.ManyToManyField(User, related_name='movie_like')
rt = models.IntegerField(default=1)
Вот деф на вид, чтобы понравиться или не понравиться:
def movieLike(request, slug):
user = request.user
if user.is_authenticated:
post = get_object_or_404(moviefiles, slug=request.POST.get('post_id'))
liked = False
if post.liked.filter(id=request.user.id).exists():
post.liked.remove(request.user)
liked = False
return HttpResponseRedirect(reverse('movie-about', args=[str(slug)]))
else:
post.liked.add(request.user)
liked = True
return HttpResponseRedirect(reverse('movie-about', args=[str(slug)]))
else:
return redirect('/user/signup')
Я использую MongoDB в качестве базы данных и django создал две таблицы в ней при запуске makemigrations
, одна из них home_moviefiles
, а другая home_moviefiles_liked
, которая хранит данные о понравившихся фильмах и данные о понравившихся или не понравившихся сохраняются правильно.
Я пытаюсь получить фильмы, которые понравились пользователю, но не могу продолжить отсюда.