如何在django的queryset中创建子查询?例如,如果我有:

select name, age from person, employee where person.id = employee.id and
employee.id in (select id from employee where employee.company = 'Private')

这就是我所做的.

Person.objects.value('name', 'age')
Employee.objects.filter(company='Private')

但是它不工作,因为它返回两个输出.

推荐答案

ids = Employee.objects.filter(company='Private').values_list('id', flat=True)
Person.objects.filter(id__in=ids).values('name', 'age')

Django相关问答推荐

在Django URL模式中使用多个空路由可以吗?

以特定顺序获取模型实例时出现问题

仅更新模型中的特定字段.Model Django

Django中的判断约束

Django:作为模型中的列表元素的字段

带有变量键的 Django 模板括号表示法不起作用

如何在 Fargate 容器中运行的 Django 中使用 AWS SES?

如何将多个模型添加到单个列表视图?

基于令牌的身份验证如何工作?

如何在 Django 模板中的计数器上进行 for 循环中断?

django - 让用户登录到测试客户端

一个简单的Django和CSS示例

在 django 中获取本地时区

Django 登录到控制台

在 Django 中注册用户的最佳方法

使用直通模型了解 Django 中的多对多字段

如何在 django 中仅获取表的特定列?

RemovedInDjango18Warning:不推荐创建没有fields属性或 exclude属性的 ModelForm

如何将 settings.py 中的变量传递给视图?

关闭 Django Rest Framework ModelViewSet 的自动分页