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

Django如何过滤不存在对应ArchivedFlag外键关联的Post查询集?

实现方案

你可以直接通过Django ORM的反向关联空值判断实现需求,你在ArchivedFlag模型中为post外键设置的反向关联名为archived_flag,直接基于该字段做isnull判断即可:

# 仅保留没有关联ArchivedFlag记录的Post
plist = plist.filter(archived_flag__isnull=True)

补充说明

  • 上述写法的逻辑是筛选出反向关联archived_flag为空的Post对象,正好符合你要排除被标记归档帖子的要求。
  • 也可以用exclude写法实现完全等价的效果:
plist = plist.exclude(archived_flag__isnull=False)
  • 如果后续需要实现「排除被当前登录用户归档的帖子」的需求,只需增加用户过滤条件即可:
from django.contrib.auth.decorators import login_required

@login_required
def your_view(request):
    # 其他逻辑得到plist
    plist = plist.exclude(archived_flag__user=request.user)
    # 后续逻辑

内容的提问来源于stack exchange,提问作者user16541120

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 20:27:02