首页 > 解决方案 > 用户不喜欢的帖子

问题描述

我正在构建一个博客应用程序,我试图展示posts哪些不被喜欢request.user

from django.db.models import Exists

checkIt = BlogPost.objects.annotate(is_liked=Exists(
                Like.objects.filter(user=request.user)))

但它显示了所有的帖子。

模型.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)

视图.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)

我已经尝试了很多次,但它对我没有用。

我将非常感谢您的帮助。谢谢你

标签: pythondjangodjango-modelsdjango-views

解决方案


您可以使用简单的exclude(…)[Django-doc]

posts = BlogPost.objects.exclude(like__user=request.user)

推荐阅读