Django-Admin网站的内置树视图?

时间:2009-09-21 18:26:20

标签: python django tree view

为什么Python Django框架中没有内置树视图? 当一个类与自身有1:n的关系时,是否有一种简单的方法可视化模型?

我知道一些花哨的谷歌代码项目可以实现这一目标,但我认为Django社区必须有一些常识来处理这种常见情况。有什么想法吗?

5 个答案:

答案 0 :(得分:2)

核心开发人员非常反对向Django添加额外的东西,除非有明确的通用要求 - 特别是如果有完美的第三方项目提供此功能。

树视图绝对是这种情况。它与每个人都想做的事情相差甚远,至少有三个提供树的项目,包括在视图和管理员中构建树的表示的相关工具。

我建议你调查一下 - 我最喜欢的是django-mptt

答案 1 :(得分:1)

另一种选择是证明Django的概念应用 - django-admirarchy。它逐级呈现层次结构(如Norton Commander和Co)。

答案 2 :(得分:1)

您可以使用 django-mptt-admin
django-mptt 应用程序带有一个简单的模型管理 mixin,允许您创建树结构并用缩进列出它。要重新排序树,您需要自己创建此功能或使用第三方解决方案。目前,有两个应用程序可以帮助您为分层模型创建可拖动的管理界面。其中之一是 django-mptt-admin。让我们来看看这个食谱。

首先,我们需要通过执行以下步骤安装 django-mptt-admin 应用程序:

(myproject_env)$ pip install django-mptt-admin

然后,把它放在设置中的INSTALLED_APPS中,如下:

# conf/base.py or settings.py
INSTALLED_APPS = (



   # ...
    "django_mptt_admin"
)

答案 3 :(得分:0)

退房:

tree structure of parent child relation in django templates

http://code.google.com/p/django-treeview/

另一种方法是在JavaScript中实现您的树。 Django和JavaScript很好玩,所以可以正常工作。有很多JavaScript树,只需要谷歌

答案 4 :(得分:0)

django-mptt是一个非常不错的Django应用程序,可轻松管理,排序和呈现模板中的树数据。它解决了我要制作精简CMS的问题,并且需要管理菜单和类别。与其他项目相比,它真的很容易安装并且文档齐全。这是一个旧项目,但仍然可以在最新的Django版本上完美运行。在撰写本文时,我已经在Python 3.8的Django 3.0.7上使用和测试了它