如何在django视图中显示具有超链接的树结构

时间:2013-07-26 08:46:41

标签: python django django-mptt mptt

我的数据库中有一个名为nodes的表 和我有父母子女的关系,我正在使用

http://django-mptt.github.io/django-mptt/tutorial.html

表示节点

现在我可以显示相同的所有节点,这没问题。

但我想要的是我有类似文件夹的结构,如果有人点击parent folder,那么我会转到下一个只有孩子的视图

和网址将成为

www.example.com/downloads/parentfolder

然后,如果用户点击子文件夹1,则会显示其他子项,并且网址变为

www.example.com/downloads/parentfolder/childfolder

我该怎么做呢

我想做这样的事情

Django MPTT - how to query based on URL segments

但他没有解释他是如何做到的

1 个答案:

答案 0 :(得分:2)

你可以像使用urls.py中的普通django模型那样使用路由进行路由。

#urls.py

urlpatterns = patterns('',

    url(r'^downloads/(?P<parent_id>\d+)/$', ParentView.as_view(), name='parents_list'),
    url(r'^downloads/(?P<parent_id>\d+)/(?P<child_id>\d+)/$', ChildView.as_view(),
                                    name='childs_list'),
)

写相应的观点,你应该没问题。请记住,我在上面的url示例中使用了基于类的视图。只需编写您熟悉的任何类型的视图。

第一个视图将显示来自url中给定父ID的父列表或父列表。第二个视图将显示父级和子级ID中父级内的子级。

修改

看起来您的要求有点复杂,我在Django-MPTT full path to child pages how to make?

找到了更好的解决方案

我希望它能解决你的问题:)