Django-Admin 站点的内置树视图?
Posted
技术标签:
【中文标题】Django-Admin 站点的内置树视图?【英文标题】:Built-in tree view for Django-Admin sites? 【发布时间】:2009-09-21 18:26:20 【问题描述】:为什么 Python Django 框架中没有内置的树形视图? 当一个类与其自身具有 1:n 关系时,难道没有一种简单的方法可以可视化模型吗?
我知道一些花哨的谷歌代码项目来实现这一点,但我认为 Django 社区必须有一些常识来处理这种常见情况。有什么想法吗?
【问题讨论】:
在数据库中有多种表示树的方法。 Django Treebeard 涵盖其中三个(邻接列表、物化路径和嵌套集)。 【参考方案1】:核心开发人员非常反对向 Django 添加额外的东西,除非有明确的通用要求——尤其是如果有非常好的第三方项目可以提供此功能。
这绝对是树视图的情况。这远不是每个人都想做的事情,至少有三个项目提供树,包括在视图和管理员中构建树表示的相关工具。
我建议你调查一下——我最喜欢的是django-mptt。
【讨论】:
【参考方案2】:另一个选项是 Django 的概念验证应用程序 - django-admirarchy。它逐级呈现层次结构(如 Norton Commander and Co)。
【讨论】:
【参考方案3】:你可以使用 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"
)
【讨论】:
【参考方案4】:退房:
tree structure of parent child relation in django templates
http://code.google.com/p/django-treeview/
另一种方法是在 javascript 中实现您的树。 Django 和 JavaScript 运行良好,因此可以正常工作。那里有很多 JavaScript 树,只要问问 google
【讨论】:
【参考方案5】:django-mptt 是一个非常好的 Django 应用程序,用于轻松管理、排序和渲染模板中的树数据。它解决了我想要制作精益 CMS 并且需要管理菜单和类别的问题。与其他项目相比,它真的很容易安装和有据可查。这是一个旧项目,但仍然可以在最新的 Django 版本上完美运行。在撰写本文时,我已经在 Python 3.8 中的 Django 3.0.7 上使用并测试了它
【讨论】:
以上是关于Django-Admin 站点的内置树视图?的主要内容,如果未能解决你的问题,请参考以下文章