如何在Django中查询多个对象的自引用查询

如何在Django中查询多个对象的自引用查询,django,django-orm,Django,Django Orm,对不起,标题不好。我希望我能在这里更详细地阐述它。我有一个模型课,如下所示 class Employee(models.Model): name = models.CharField(max_length=10) manager = models.ForeignKey('Employee', null=True, on_delete=models.DO_NOTHING) 我想做一个查询,查找由经理列表管理的所有员工 像这样的 SELECT r.name FROM employe

对不起,标题不好。我希望我能在这里更详细地阐述它。我有一个模型课,如下所示

class Employee(models.Model):
    name = models.CharField(max_length=10)
    manager = models.ForeignKey('Employee', null=True, on_delete=models.DO_NOTHING)
我想做一个查询,查找由经理列表管理的所有员工

像这样的

SELECT
r.name
FROM employee l
JOIN employee r
ON l.id = r.manager_id
WHERE l.name in ('manger_1', 'manager_2');
如何使用Django ORM实现这一点?

您可以使用:


Employee.objects.filter(manager\uu name\uu in=['manager\u 1','manager\u 2'])
而不是
模型。外键('Employee',…)
自引用外键应使用
self
来引用同一模型,即
模型。外键('self',…)
(尽管您所做的操作可行)
Employee.objects.filter(manager__name__in=['manager_1', 'manager_2'])