You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django中获取指定用户所关注用户的全部帖子?

最简实现:检索指定用户关注者的帖子

嘿,这事儿用Django ORM的关联查询就能轻松搞定,给你两种最简的实现方式,按需选就行:

方式一:先获取被关注用户ID,再过滤帖子

这种方式逻辑直观,先拿到指定用户关注的所有人的ID,再筛选这些人发布的帖子:

# 先获取你要查询的指定用户(比如从请求里取,或者通过ID获取)
current_user = request.user  # 或者 User.objects.get(id=你的用户ID)

# 获取该用户关注的所有用户ID列表
followed_user_ids = current_user.follows.values_list('followed_user_id', flat=True)

# 筛选这些用户发布的帖子,按时间倒序(最新的在前)
posts = Post.objects.filter(user__in=followed_user_ids).order_by('-timestamp')

方式二:直接用ORM关联链式查询

这种更简洁,一步到位,利用模型的反向关联直接过滤:

current_user = request.user  # 或者指定的用户实例

# 直接通过关联关系筛选:Post的发布者(user字段)被current_user关注
posts = Post.objects.filter(user__followed__user=current_user).order_by('-timestamp')

注意点

如果你的Post模型里,original_poster才是实际的发布者(而user可能是转发者?),那把上面代码里的user换成original_poster就行,比如:

posts = Post.objects.filter(original_poster__followed__user=current_user).order_by('-timestamp')

这里解释下关联查询的逻辑:original_poster__followed__user表示——帖子的原始发布者(original_poster),存在一条Following记录,其中这条记录的user是我们指定的current_user,也就是该发布者被current_user关注了。

内容的提问来源于stack exchange,提问作者Bartosz Bąk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:05:58