gpt4 book ai didi

python - django-mptt 模型实例不支持索引

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:57 25 4
gpt4 key购买 nike

我正在尝试使用 django-mptt 实现一个简单的文件浏览器应用程序

这是我的 models.py

class RootMPTT(MPTTModel):
name = models.CharField(max_length =255)
parent = TreeForeignKey('self',null=True,blank=True,related_name='children',db_index=True)

class Doc(models.Model):
file = models.FileField(upload_to=set_upload_path_MPTT)
belongs_to = models.ForeignKey(RootMPTT)

我正在尝试使用教程部分中的代码在 html 中显示 TreeView

  {% load mptt_tags %}
<ul>
{% recursetree nodes %}
<li>
{{ node.name }}
{% if not node.is_leaf_node %}
<ul class="children">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
</ul>

我从 django 收到以下错误

'RootMPTT' object does not support indexing

主要是因为“nodes”变量如下

nodes = RootMPTT.objects.get(pk=casenum)

如果我把它改为

nodes = RootMPTT.objects.all()

html 渲染得很好。但我需要的只是获取单个节点的后代,而不是所有根节点。

我想我可以通过获取get_children方法来获取 child ,并在html中手动显示它们。但想知道是否有使用 recursetree 的方法

最佳答案

recursetree 采用查询集或节点列表,而不是单个节点。如果您只想显示一棵树,只需创建一个仅包含该树的查询集:

nodes = RootMPTT.objects.get(pk=casenum).get_descendants(include_self=True)

关于python - django-mptt 模型实例不支持索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com