Как использовать MPTT для Django, чтобы получить всех детей? - PullRequest
1 голос
/ 08 ноября 2011

Я пытаюсь получить всех детей из категории:

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()

Теперь я получаю эту ошибку: «get () возвратил более одной категории - возвращено 7! Параметры поиска были {}»

спасибо

1 Ответ

6 голосов
/ 08 ноября 2011

Ваша проблема не с MPTT.Проблема в том, что category - это набор запросов, а не экземпляр - get_children() - это метод модели, а не метод набора запросов.

Используйте get вместо filter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...