问题标签 [django-treebeard]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
274 浏览

python - Django-Tteebeard在django表单中使用treadbeard字段表单

我正在尝试将 TreeBeard 的内置表单与 django 表单(不是管理员)一起使用。我特别想用 TreeBeard 表单格式替换 Select ForeignKey 字段的呈现。我以为我可以通过在我的 ModelForm 中声明该字段来做到这一点,但我没有成功。我是 django 的新手,所以我的理解有限。

这些是我在 forms.py 中的初始类

我尝试通过在开始时声明类别字段来实现它,但这显然不是这样做的方法。该声明确实返回了一个 html 格式的类别列表,但我不能用它替换 Post 类别(它是一个 ForeignKey)。

我想使用 TreeBeard 表单的原因是它根据类别层次结构嵌套字段的方式。

已解决:这最终比我意识到的要简单得多。

0 投票
1 回答
430 浏览

django - 如何过滤 MP_NODE 中的叶节点

我有一个这样的类别的树模型:

我想得到一个只有叶节点的查询集。

0 投票
0 回答
588 浏览

django - 将 django-treebeard 模型与另一个 django 模型作为外键链接的正确方法是什么?

我正在构建一个系统,该系统将显示城市中每个体育场周围的重要设施,如车站、火车站、医院、餐馆和酒吧等,以及它们与各个体育场的距离。我在 Django 中有两个模型,一个用于体育场,另一个用于体育场周围的设施。如果设施有多个选项,则设施可以是分层的。例如

Stadium-1:
-医院     :
        -某医院:700米-餐厅:-         中餐:
    -abc餐厅             :2公里         -意大利:             -lmn餐厅:300米-xyz餐厅             :1.2 公里




每棵树的根节点的名称将与它作为外键链接到的体育场的名称相同。每个体育场都有自己的树,指定周围的重要设施以及它们与体育场的距离。

我正在使用 Django-Treebeard 来创建设施树。我的设施模型是 MP_Node 类型。我正在使用管理界面添加我的数据。

当我尝试将体育场与设施树链接时,它会显示所有树模型中添加的每个节点。这很乱。想象一下当数据增长时。会很麻烦的。

我试图将其链接为 OneToOneField 但没有任何改变。目前,我正在使用外键链接两个模型。以下是我的实际模型:

我的屏幕截图显示了将设施树链接到其各自的体育场时会发生什么: 1. 添加节点时:

在此处输入图像描述

  1. 最终设施树:

    在此处输入图像描述

  2. 与相应体育场链接时: **在此处输入图片描述**

它显示了所有树中的所有节点。我知道我在这里做错了什么。

我的问题是:
这里的正确方法是什么?我构建模型的方式有问题吗?有没有为此目的的替代方法?

0 投票
1 回答
105 浏览

django - 移植和现有的嵌套集层次结构

我有一个使用 PHP ORM 原则开发的嵌套集合类别表,我想将它移植到 Django 应用程序。

我开始将它移植到 django-treebeard,但我遇到了困难,我不确定它是否可以工作。原始表具有所需的字段 lft、rgt 和深度,因此我添加了 tree_id 字段。

我还有一个外键到一个树/帐户的帐户。因此,该表包含多个不在公共根下的独立树,每棵树的 lft 和 depth 列从 1 开始。所以基本上表中的每个帐户都有一个嵌套集。

我可以很好地将节点添加到树中,但是当我调用 get_last_child 方法时,我会从其他帐户获取节点。

有谁知道是否有一种方法可以使用 treebeard、mptt 或任何其他软件包而无需重组树?

0 投票
0 回答
55 浏览

django - 配置要与 Django treebeard 一起使用的 Postgresql 数据库

我正在尝试使用 django-treebeard 以 postgresql 作为数据库来操作分层数据。我当前的版本是:

因此,当我使一个节点成为另一个节点的子节点,然后再次将子节点设置为根节点时,就会出现错误。负责移动节点的视图方法如下:

此外,当移动的节点有子节点时,这在第一次尝试时会失败。我读到人们得出结论,这与数据库选择的排序规则有关。

  • 如果这是错误的原因,那么 postgres 与 django-treebeard 一起使用的最佳配置是什么?
  • 否则可能是什么问题(使用的代码与 treebeard 管理逻辑文件中的代码匹配)?
  • 另外,是否有 django-treebeard 的替代品?
0 投票
1 回答
413 浏览

django - 如何在模板中将 django-treebeard MP 显示为下拉菜单?

按照treebeard docs api示例,我使用get_annotated_list(parent=None, max_depth=None)with parent=<my root node>创建了我的树的 annotated_list 。我将它传递给我的模板并使用他们在文档中归因于 Alexey Kinyov 的示例,我能够使用成功显示我的树

我想要的是能够提供这些嵌套列表下拉功能。借鉴w3schools 上的这个标准示例,我对其进行了修改以使用我的annotated_list模板变量并最终得到以下结果:

我的代码几乎可以工作,但似乎没有显示最左边节点的子节点,我不知道为什么。

注意:CSS 和 JS 不包括在内,但需要使下拉菜单工作(我只是使用 w3schools 示例中使用的开箱即用的 CSS/JS)

0 投票
0 回答
161 浏览

django - 使用 django treebeard 在 django 中实现分层系统

我正在尝试实现一个基于网络的组织教会系统,该系统具有如图所示的层次结构。

我想使用 django treebeard 物化路径来实现系统。

我希望树上的每个节点都是教堂的一个实例,树中的单个教堂也可以管理其内容,管理员也可以登录,用户可以登录他们所属的教堂。

我还需要父节点能够访问子节点的一些数据。

这可能吗?如果您有任何想法或线索,请提供帮助。提前致谢。

这是树的图

0 投票
1 回答
319 浏览

django - Wagtail:通过子字段过滤页面模型

我有两个模型,ParentPageChildPage。我想找到ParentPage一个字段在 s 上的is_completed集合。TrueChildPage

通常在 Django 中,我可以做类似的事情

ParentPage.objects.filter(child_page__is_completed=True)

但是,我认为 Wagtail/Treebeard 层次结构在这里没有连接。

我还认为您可以ChildPage通过多个ParentPages 过滤 s,例如ChildPage.objects.children_of([parent_ids]),但我也看不到这样做的方法。

有没有更简单的方法?

0 投票
1 回答
306 浏览

python - Django / Wagtail 中的大型嵌套层次结构:育儿还是分类?

我有一个数据库,其中包含 50,000 种药物(药物)的元数据,这些元数据按层次排序(分类称为 ATC)。心脏药物的例子如下:

  • 一个
  • -- A10
  • ---- A10X,美托洛尔

有些药物有4个级别。

我需要为每种药物生成一个单独的页面。在 wagtail/django 中执行此操作的最有效方式是什么,包括考虑到用户需要一种简单直观的方式来搜索数据库。

我试过django-mptt,定义了以下模型。

进行迁移会引发以下错误:class ATCDrug(MPTTModel, Page): TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

这可以通过不让类从 Page 继承来解决,这当然是不好的。我删除了 Page 并尝试了模型,但无法验证父子方案是否正确。

问题:考虑到目标,我是否在做明显错误或次优的事情。

系统:Wagtail 2.10,Postgresql,计划使用 Algolia 进行搜索。

感谢任何建议。

0 投票
0 回答
44 浏览

python - 如何递归获取下属?

我有组织单位(OrgUnit)的 Django 模型,可以是公司、部门、团队等,即。它是一个树形结构:

员工可以连接到一个或多个组织单元:

..and manager 可以管理多个 OrgUnits:

现在我想要一个包含给定经理下属的所有员工的查询集,实现为 on 上的方法OUManager,但是,当前实现仅将员工直接连接到经理管理的组织单元,而不是子组织单元:

即给出:

我想

返回带有 emp1 和 emp2 的查询集(上述实现仅返回 emp2)。

有没有办法写下属,所以它只需要一个 db-hit?

到目前为止,我想出的最佳方法需要首先实现所有路径:

是否有任何直接的方法可以在一个 db-hit 中直接或通过更改模型来实现这一目标?