Я пытаюсь построить генеалогическое дерево в Джанго, и я не могу понять, как ссылаться на детей объекта, и детей детей детей объекта и так далее..
Это моя модель с функцией, которую я использую, чтобы попытаться получить генеалогическое древо:
class Member(models.Model):
referrals = models.ManyToManyField("self", symmetrical=False)
def tree(self):
refs = {}
for ref in self.referrals.all():
refs[ref] = ref.tree()
return refs
Это работает, однако, если у детей тоже есть дети, тоон говорит следующее:
maximum recursion depth exceeded while calling a Python object
В идеале я хочу, чтобы функция дерева возвращала строковый объект, который является вложенным списком, поэтому я могу просто поместить результат в шаблон следующим образом:
<ul>
<li>Member A</li>
<li>Member B
<ul>
<li>Member BA</li>
<li>Member BB</li>
</ul>
</li>
<li>Member C</li>
</ul>
Буду признателен за любые предложения, спасибо