擅长:python、mysql、java
<p>我找到了解决问题的办法。递归解决方案获取节点,转到它的第一个子节点,并深入到层次结构的底部。然后再次回到第二个子对象(如果存在),然后再次向下直到底部。简言之,它逐个探索所有节点,并将所有成员追加到一个数组中。我想出的解决方案是分层获取成员。在</p>
<pre><code>member = StaffMember.objects.get(id__id=user_id)
new_list = [member]
new_list = get_final_team(new_list)
def get_final_team(qs):
team = []
staffmembers = StaffMember.objects.filter(supervisor__in=qs)
team += staffmembers
if staffmembers:
interim_team_qs = get_final_team(staffmembers)
for qs in interim_team_qs:
team.append(qs)
else:
team = [qs]
return team
</code></pre>
<p>此方法所需的db调用数是指在我们要查找其团队的成员下面存在的(层次结构的)层数。在</p>