2014-01-12 74 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)