我有一个组织模型,对于每个组织,我必须找到它的父组织的ID。
我可以使用这段代码获取单个组织的父组织ID,
child = Organization.objects.filter(name='XYZ').first()
parent = Organization.objects.filter(lft__lt=child.lft, rgt__gt=child.rgt, tree_id=child.tree_id).order_by('depth').last()
print child, parent.id
但我希望每个组织都一样(对于每个组织,我想要它的父ID)。如果我在for循环中,应该生成n个db查询。有没有办法在单个数据库查询中获取输出?
models.py
from treebeard.ns_tree import NS_Node
class Organization(NS_Node):
name = models.CharField(max_length=100, null=False)
url = models.URLField(default=None, blank=True, unique=True, null=True)
image = models.ForeignKey(Image, blank=True, null=True)
is_organization = models.BooleanField(default=False)
is_unit = models.BooleanField(default=False)
is_lob = models.BooleanField(default=False)
is_function = models.BooleanField(default=False)
is_department = models.BooleanField(default=False)