Django-Admin站点的内置树视图?
为什么在Python的Django框架中没有内置的树形视图呢?
当一个类与自己有1:n的关系时,难道没有简单的方法来可视化这个模型吗?
我知道一些很炫的谷歌代码项目可以做到这一点,但我觉得在Django社区中应该有一些常见的做法来处理这种常见情况。有什么想法吗?
5 个回答
1
你可以使用django-mptt-admin
django-mptt这个应用自带一个简单的模型管理工具,可以让你创建树形结构并且以缩进的方式列出来。如果你想重新排列这些树形结构,你需要自己实现这个功能,或者使用第三方的解决方案。目前,有两个应用可以帮助你创建一个可以拖拽的管理界面,适用于层级模型。其中一个就是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"
)
1
另一个选择是一个用于Django的概念验证应用程序 - django-admirarchy。它可以逐级显示层级结构(就像Norton Commander等工具一样)。
2
核心开发者们对于在Django中添加额外功能是非常谨慎的,除非有明确的普遍需求,尤其是当已经有很好的第三方项目可以提供这些功能时。
树形视图就是一个很好的例子。并不是每个人都需要这个功能,而且已经有至少三个项目可以实现树形结构,包括在视图和管理界面中构建树形表示的相关工具。
我建议你去了解一下这些项目,我最喜欢的是 django-mptt。