¿Cómo usar MPTT para que django obtenga todos los niños?

Estoy tratando de obtener todos los hijos de una categoría:

def list_sub(self, category_name):
   # this will return the parent if exists
   category = Category.objects.filter(seo_title__exact = seo_title).filter(lang__exact = 'pt-PT').filter(level__exact = 1)

   if category:
      # but this doesn't work and in the documentation there are no examples
      # of how to get it. See link about the method
      sub_categories = category.get_children()

http://django-mptt.github.com/django-mptt/models.html#get-children

Update1:

qc = Category.objects.filter(seo_title__exact = cat).filter(lang__exact = 'pt-PT').filter(level__exact = 1)
category = qc.get()

if category:
    qsc = category.get_children()
    sub_categories = qsc.get()

ahora aparece este error: "get () devolvió más de una categoría, ¡devolvió 7! Los parámetros de búsqueda eran {}"

gracias

preguntado el 08 de noviembre de 11 a las 09:11

1 Respuestas

Tu problema no es MPTT. El problema es que category es un conjunto de consultas, no una instancia - get_children() es un método de modelo, no un método de conjunto de consultas.

Utilizan get en lugar de filter.

respondido 08 nov., 11:13

¡Gracias! ahora lo he hecho. pero recibo este otro error ... "get () devolvió más de una categoría - ¡devolvió 7! Los parámetros de búsqueda eran {}", ¿qué significa eso? EDITAR: ok .. tengo que usar todo () - Totty.js

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.