Skip to main content
 首页 » 编程设计

python之如何在 Django View 中显示带有超链接的树结构

2024年11月01日38lonelyxmas

我的数据库中有一个名为 nodes 的表 以及我有亲子关系的地方,我正在使用

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

对于节点

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

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

并且 url 会变成

www.example.com/downloads/parentfolder

然后,如果用户点击子文件夹 1,则会显示其更多子文件夹,并且 url 变为

www.example.com/downloads/parentfolder/childfolder

我怎么能做那种事情

我想做这样的事情

Django MPTT - how to query based on URL segments

但是他没有解释他是怎么做到的

请您参考如下方法:

您可以像在具有来自 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'), 
) 

写出相应的 View ,应该就可以了。请记住,我在上面的 url 示例中使用了基于类的 View 。只需编写您熟悉的任何类型的 View 即可。

第一个 View 将显示 url 中给定父 ID 的父或父列表。第二个 View 将在给定 parent 和 child ID 的情况下显示 parent 内部的 child 。

编辑

看起来你的要求有点复杂,我在这里找到了更好的解决方案Django-MPTT full path to child pages how to make?

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