我有两个应用projects
和tasks
。在我的projects
应用中,我希望根据每个项目的状态计算任务数量。例如,11个任务可能是真的,5个任务可能是错误的。
tasks models.py
class Task(models.Model):
status = models.BooleanField()
project = models.ForeignKey(Project)
projects models.py
class TaskCount(models.Manager):
def get_query_set(self):
return super(TaskCount, self).get_query_set().annotate(tasks=Count('task'))
这个简单的经理计算所有任务,但如果我尝试按状态过滤,则表示无法找到该属性。因为它在projects表而不是tasks表中查找属性。
如何按任务状态查询,同时仍按项目保留"计数任务"接近?
答案 0 :(得分:1)
我不确定为什么你在这里有两个独立的应用程序,而不是在同一个应用程序中只有两个模型。无论如何,方法都是相同的:您使用双下划线语法来跨关系进行过滤。
Project.taskcount.filter(task__status=False)