鉴于这些Django模型对象:Django的查询与所有相关对象符合条件
class Job(models.Model):
pass
class Task(models.Model):
job = models.ForeignKey('Job', related_name='tasks')
status = models.CharField(choices=TaskStatus.CHOICES, max_length=30)
dependencies = models.ManyToManyField("self", related_name="dependents", symmetrical=False)
我想查询与状态PENDING单个作业已完成所有任务和有状态的所有依存关系。
我写了下面的查询,但它返回的任务至少有一个状态完成的依赖项,这显然不是我想要的。
tasks_that_can_be_executed = Task.objects.filter(
job__pk=job_id,
status=TaskStatus.PENDING,
dependencies__status=TaskStatus.COMPLETED
)
有什么建议吗?
where status column? –
@ PiyushS.Wanare添加了它。对不起,在为这个例子剥离无关代码时,我一定错过了它。 – Korijn
为什么所有人都使用'Q'我不知道它主要用在我们需要使用条件时?和过滤器总是使用'AND' –