Как показать пользователю понравившиеся ему посты (или фильмы)?

У меня есть страница профиля пользователя, где я хочу показать пользователю фильмы, которые ему понравились. Вот часть модели, которая содержит поле 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, которая хранит данные о понравившихся фильмах и данные о понравившихся или не понравившихся сохраняются правильно. Я пытаюсь получить фильмы, которые понравились пользователю, но не могу продолжить отсюда.

Вернуться на верх