2014-01-12 110 views
0

菜单树我有一个模型:大厦“无限”和Django

menuName = models.CharField(max_length=50) 
menuAlias = models.CharField(max_length=50, unique=True, validators=[aliasvalidator]) 
published = models.BooleanField() 
parentId = models.IntegerField() 

而且whant建立一个模板至极包含每个entrie,的“一线,其中父母的ID是无限的亲子关系菜单级别“的元素是0.并因此建立任何HTML菜单树我想要的。

回答

0

不要重新发明车轮;使用专用的Django扩展来构建树结构。有几种可用的软件包实现Modified Preorder Tree Traversal model

其中主要是django-mptt;它会让你的菜单建设变得更容易和高效:

from django.db import models 
from mptt.models import MPTTModel, TreeForeignKey 

class Menu(MPTTModel): 
    menuName = models.CharField(max_length=50) 
    menuAlias = models.CharField(max_length=50, unique=True, validators=[aliasvalidator]) 
    published = models.BooleanField() 
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)