我需要显示一个菜单列表和多级子菜单列表,例如:
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