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 站点的内置树视图?的主要内容,如果未能解决你的问题,请参考以下文章

django-admin小试

整个 Drupal 站点的字幕?

php WordPress插件,用于为WP多站点按站点存储自定义和内置用户字段。适合多语言设置。自定义为y

django-admin和manage.py

django-admin和manage.py

jsp内置对象之Cookie对象