我有一个由3个表组成的数据库
他们的关系
我已经通过此代码
查询了目标任务记录 task = tasks.objects.filter(section_id=sectionID)
假设我有sectionID然后我想从任务对象获取project.id,我该怎么办?
谢谢。
答案 0 :(得分:1)
我猜你的模特看起来像那样:
class Project(models.Model):
#...
class Section(models.Model):
#...
project = models.ForeignKey(Project)
class Task(models.Model):
#...
section = models.ForeignKey(Section)
因此,为了获得任务project
,您只需要遵循这种关系。
#when task is a single task object
project = task.section.project
请注意,这会产生2个查询(一个获取section
,另一个获得project
)您可以使用select_related
进行优化
tasks = Task.objects.filter(section_id=sectionID).select_related('section__project')
for task in tasks:
project = task.section.project
print project.id
以单个查询结尾。
我想您也想知道如何获得某些queryset
所包含的projects
sectionID
,在这种情况下,您可以使用反向关系,如下所示:
projects = Project.objects.filter(section__id=sectionID)
答案 1 :(得分:0)
您可以使用task.section.project.id
。