python - 用户不喜欢的帖子
问题描述
我正在构建一个博客应用程序,我试图展示posts
哪些不被喜欢request.user
,
- 我尝试过使用提到
Exists
的方法:-
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)
我已经尝试了很多次,但它对我没有用。
我将非常感谢您的帮助。谢谢你
解决方案
您可以使用简单的exclude(…)
[Django-doc]:
posts = BlogPost.objects.exclude(like__user=request.user)
推荐阅读
- dictionary - 无法将地图对象转换为 JSON 对象
- linux - Dockerfile 在构建时找不到 shell 脚本
- python - .dropna() 增加内存使用
- javascript - Fabricjs 让我只旋转和编辑第一个点击的图像
- pycharm - 使用pycharm2019 jupyter notebook打开.ipynb文件,窗口无法交互卡住
- selenium-webdriver - 自动化脚本运行时如何处理“接受 Cookie”消息
- react-native - 为多个系列添加不同的工具提示值
- java - 如何通过 youtubeExtractor 的 youtube 链接为 ExoPlayer 创建 MediaSource
- r - Julia:使用 RData.jl 加载 rds 文件会占用大量内存
- documentation - 如何 doxygen 记录函数的未命名参数?