Django,类别和子类别

时间:2009-09-15 20:22:48

标签: jquery css django django-models django-templates

使用DataModel的工作类别和子类别,这一部分都很好,但我需要在我的菜单导航中使用我的类别和子类别,我尝试使用此Jquery menu,即时通讯使用子类别渲染我的菜单,但我在以下方式渲染子类别时丢失了:

<ul>
  <li>
    <a href="#">Category</a>

    <!--subcategories-->
   <span>Subcategory 1 </span>
   <span>Subcategory 2 </span>
   ...
  </li>
  ....
  ....
 </ul>

我的问题:在数据模型中:使用'self',我不知道在这种情况下做一个子类别(父亲是他自己的领域)是多么恶心..

class Category(models.Model):
 name = models.CharField(core=True, maxlength=200)
 slug = models.SlugField(prepopulate_from=('name',))
 parent = models.ForeignKey('self', blank=True, null=True, related_name='child')
 description = models.TextField(blank=True,help_text="Optional")

由于

1 个答案:

答案 0 :(得分:2)

使用类似

的内容获取所有顶级类别
top_level_cats = Category.objects.filter(parent__isnull=True)

然后:

for tlc in top_level_cats:
    #do the HTML for the top-level category
    for clc in tlc.child.all():
        #do the HTML for the children of clc

如果您有多个级别类别,则需要在某处进行递归调用,但这给出了基本要点。