显示菜单和多级子菜单

时间:2014-11-05 20:34:30

标签: django django-templates django-views

我需要显示一个菜单列表和多级子菜单列表,例如:

MENU1 --menu2 ----菜单3 --menu4 menu5 --menu6

这是我的代码:

模型:

class Menu(models.Model):
    status = models.BooleanField(default=False)
    name = models.CharField(max_length=45)
    parent_id = models.ForeignKey(u'self', null=True, blank=True, related_name=u'parent_menu')

视图:

menu = {}
map(lambda c: menu.setdefault(c.parent_id, []).append(c), \
            Menu.objects.filter(status=True).select_related('parent_menu'))
context['menu'] = menu
return context

模板:

{% for mymenu, mysubmenu in menu.items %}
  {{ category.name }}
  {% for mysubmenu in mysubmenu %}
    {{ mysubmenu }}
  {% endfor %}
{% endfor %}

实际问题是,我没有得到多个级别的正确列表。现在显示如下:

MENU1 --menu2 MENU2 --menu3 --menu4 menu5 --menu6

0 个答案:

没有答案