[英]django-mptt model instance does not support indexing
我正在嘗試使用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形式顯示樹視圖
{% 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
我可以通過獲取get_children
方法來獲取孩子,並在html中手動顯示他們。 但想知道是否有使用遞歸樹的方法
recursetree
采用查詢集或節點列表,而不是單個節點。 如果您只想顯示一棵樹,則只需在其中設置一棵樹的查詢集即可:
nodes = RootMPTT.objects.get(pk=casenum).get_descendants(include_self=True)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.