/Do /中的VariableDoesNotExist /在["]中找到关键[节点]的失败

时间:2016-10-12 10:07:09

标签: python django django-mptt

我遇到了Django MPTT的问题 我的模特是

class Catalog(MPTTModel):
name = models.CharField(verbose_name='name',max_length=256,blank=True  )
name_slug = models.CharField(verbose_name='Name_slug',max_length=250,blank=True)
parent = TreeForeignKey('self',null=True,blank=True,related_name='children')

class MPTTMeta:
    order_insertion_by = ['name']
def __unicode__(self):
    return u"%s %s %s " %(self.name,self.name_slug,self.parent)
def __str__(self):
    return u"%s %s %s " %(self.name,self.name_slug,self.parent
    def get_absolute_url(self):
        return reverse("catalog",kwargs={"slug":self.name_slug})

现在,我在base.html中使用MPTT,如下所示:

<ul class="root">
{% recursetree nodes %}
    <li>
        <a href="{{ node.get_absolute_url }}">{{ node.name }}</a>
        {% if not node.is_leaf_node %}
            <ul class="children">
                <a href="{{ children.get_absolute_url }}">{{ children }}</a>
            </ul>
        {% endif %}
    </li>
{% endrecursetree %}

然而,当我使用mptt树访问我的页面时,我可以看到:

VariableDoesNotExist at /list/
Failed lookup for key [nodes] in u"[{'False': False, 'None': None, 'True': True}, {}, {}, {'places': <QuerySet [<Place: \u041b\u044c\u0432\u0456\u0432 lvv \u0441\u0456\u0456\u0441\u0441\u0456\u0441\u0456\u0456\u0441 list.Catalog.None >, <Place: \u0421\u043a\u0430\u043b\u0430\u0442 skalat \u0421\u043a\u0430\u043b\u0430\u0442 list.Catalog.None >]>}]"

你能告诉我我的问题在哪里吗?

1 个答案:

答案 0 :(得分:3)

不要忘记,使用示例{% recursetree nodes %}nodes实际上是您的类别模板变量的名称。

因此,如果您的views.py将类别对象作为categories发送给模板,那么您需要使用{% recursetree categories %}

recursetree块中,node被硬编码到树的单个节点,children被硬编码到该节点的子节点,但nodes只是一个示例模板变量名称。