class Category(models.Model): parent = models.ForeignKey(u'Category', related_name='children', verbose_name=u'Вышестоящая категория', null=True, blank=True, ) is_active = models.BooleanField(verbose_name=_(u'Показывать'), default=True, blank=False, null=False, ) disclose_product = models.BooleanField(verbose_name=_(u'Открывать страницу товара'), default=True, blank=False, null=False,) title = models.CharField(verbose_name=u'Заголовок категории', max_length=255, null=False, blank=False, ) name = models.CharField(verbose_name=u'Наименование категории', max_length=255, null=True, blank=True, ) description = models.TextField(verbose_name=u'Описание категории',
Есть шаблон на jinja2
<ul id='accordion' class="menu"> {%- for cat in all_categories_ recursive %} <li> <a href="{{ cat.get_absolute_url() }}" alt='{{ cat.name }}' title="{{ cat.title }}">{{ cat.title }}</a> {%- if cat.children -%} <ul class="submenu">{{ loop(cat.children) }}</ul> {%- endif %}</li> {%- endfor %} </ul>
во вьюхе я делаю выборку из модели Category
all_categories_ = Category.objects.all()
Теперь вопрос:
Как только в all_categories_ попадают записи с заполненным полем parent начинает срабатывать {% if cat.children %} и естественно вываливаться ошибка ‘RelatedManager’ object is not iterable
Как побороть данную проблему?
UPD:
В результате хотелось бы получить многоуровневое меню, с “практически не ограниченным” количеством вложений.