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

如何编写Django查询筛选队列包含指定User的Company?

筛选关联队列包含指定用户的公司

模型关系

  • Company 和 Queue 为一对一关联
  • User 和 Queue 为多对多关联:支持用户加入多个队列,一个队列也可包含多个用户

实现方案

要筛选出其关联队列包含指定用户的Company实例,可直接通过Django的关联查询语法高效实现:

def get(self, request, **kwargs):
    user = request.user
    # 筛选关联队列包含当前用户的公司
    joined_companies = Company.objects.filter(queue__users=user)

说明

原代码中queue__users__contains=user的写法并不合适,contains通常用于字符串或可迭代对象的包含检查,而Django多对多关联的匹配直接用queue__users=user就能准确筛选目标数据;同时直接从Company.objects发起过滤,避免了先查询全量Company的性能损耗。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:55:12