问题
I'm trying to get all the children of a category:
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()
now I get this error: "get() returned more than one Category -- it returned 7! Lookup parameters were {}"
thanks
回答1:
Your problem is not with MPTT. The issue is that category
is a queryset, not an instance - get_children()
is an model method, not a queryset method.
Use get
instead of filter
.
来源:https://stackoverflow.com/questions/8048452/how-to-use-mptt-for-django-to-get-all-children