Django分层模型列表

TC *_*Fox 2 python django model nested-lists hierarchical-data

这应该很简单,但是我正在试着想一想如何解决这个问题!

我的网站侧面有一个导航菜单,用于挑选产品.它的格式如下:

  • 每个产品都属于"列表"(单击列表会向您发送包含产品列表的页面).
  • 每个列表都属于一个"类别"(单击该类别时使用jquery在单击时展开其下方的列表,但除此之外)
  • 每个类别都属于"类别组",根据您正在处理的业务领域,将类别分为不同的组.

简而言之,产品属于列表,属于类别,属于类别组.它们都是一对多的关系.

我需要将这个从我的视图传递到我的模板,这样我就可以在HTML中为jquery渲染嵌套列表以使其漂亮.就像是:

<ul>
    <li>Category Group</li>
    <ul>
        <li>Category</li>
        <ul>
            <li>List</li>
            <li>List</li>
            <li>List</li>
        </ul>
        <li>Category</li>
        <ul>
            <li>List</li>
            <li>List</li>
            <li>List</li>
        </ul>
    </ul>
    <li>Category Group</li>
    <ul>
        <li>Category</li>
        <ul>
            <li>List</li>
            <li>List</li>
            <li>List</li>
        </ul>
        <li>Category</li>
        <ul>
            <li>List</li>
            <li>List</li>
            <li>List</li>
        </ul>
    </ul>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的问题是创建所述分层列表以传递给模板,以便它可以呈现它.我知道我需要使用Model.FK_set.all()来表示"类别组"中的"类别"列表,但我无法弄清楚如何在视图中创建该列表适当的方式发送到模板.有帮助吗?Python新手,所以还在学习绳索.

use*_*855 5

当我看到层次结构或树结构时,我通常会转向mptt,一个修改过的预订遍历树.谷歌"django mptt",你会发现大量关于使用django-mptt包的教程.