python - Django:如何获取查询集的相关对象?

标签 python django django-models django-queryset

假设我有两个模型:

A:
    pass

B:
    a = foreign_key(A)

现在,我有一个查询集

bs = B.objects.filter(...)

我想获取bs的所有a,也就是b引用的每一个a其中 bbs 中。

有办法吗?我想在 sql 中,一个简单的连接就可以了,我不知道 django 是否支持这个。

最佳答案

你可以使用__in:

A.objects.filter(b__in=bs)

或者您可以完全避免创建 bs 查询集,并直接在查询中遵循关系:

A.objects.filter(b__<bcondition>=<bvalue>)

例如,如果用于创建 bs 的过滤器是:

bs = B.objects.filter(name="Banana")

然后您可以使用以下方法过滤 A 对象:

A.objects.filter(b__name="Banana")

请记住,您可以通过多种不同的方式进行过滤,并且过滤功能非常广泛,因此值得查看 filter documentation

关于python - Django:如何获取查询集的相关对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197425/

相关文章:

Python:使用urllib下载不存在的文件时处理异常

python - 如何在 django 中创建自定义模型字段及其工作原理

python - reshape 具有多列的 pandas 数据框

python - Reverse {% url %} : Reverse for '"' not found. '' 不是有效的 View 函数或模式名称

Django - 限制允许输入到文本框中的字符数量

django - Django管理员以表格形式编辑字段

python - 在 Pandas 数据框中打印唯一值

python - Django - 按 CharField 值长度过滤查询集

python - 用 Django 过滤

python - django: blog() 缺少 1 个必需的位置参数: 'blog_id'