Сообщения, которые не нравятся пользователю
Я создаю приложение для блога и пытаюсь показать posts
, которые не нравятся request.user
,
- Я пробовал использовать метод
Exists
как Упоминается :-
from django.db.models import Exists
checkIt = BlogPost.objects.annotate(is_liked=Exists(
Like.objects.filter(user=request.user)))
Но он показывает все посты.
models.py
class BlogPost(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=30)
class Like(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
blog = models.ForeignKey(BlogPost, on_delete=models.CASCADE)
views.py
def unliked_posts(request):
posts = BlogPost.objects.filter(like__user=request.user).exclude(like__user=request.user)
context = {'posts':posts}
return render(request, 'unliked_posts.html', context)
Я пробовал много раз, но у меня ничего не получилось.
Я буду очень признателен за вашу помощь. Спасибо
Вы можете работать с простой exclude(…)
[Django-doc]:
posts = BlogPost.objects.exclude(like__user=request.user)