tengo este modelo con un autorreferenciado relación de clave externa:Django consulta de filtro ForeignKey auto-recursiva para todos los niño
class Person(TimeStampedModel):
name = models.CharField(max_length=32)
parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
Ahora quiero llegar a todos los niños de múltiples niveles para una persona. ¿Cómo escribo una consulta de Django para ello? Necesita comportarse como una función recursiva.
Debe ser get_all_children() como la llamada a la función y necesita usar r = r + c.get_all_children() o terminará con listas anidadas. No parece tener los derechos para editar esto yo mismo – alan
Código actualizado de acuerdo al comentario. Si todos pudiéramos editar todas las publicaciones, tendríamos un gran problema :) – sunn0
Creo que esto debería tener 'include_self = True' en la llamada de función interna también. De lo contrario, en cada recursión bajamos un nivel más, nunca añadimos nada a 'r'. Solo funcionó correctamente después de hacer ese cambio. – andy