我遇到了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 >]>}]"
你能告诉我我的问题在哪里吗?
答案 0 :(得分:3)
不要忘记,使用示例{% recursetree nodes %}
,nodes
实际上是您的类别模板变量的名称。
因此,如果您的views.py
将类别对象作为categories
发送给模板,那么您需要使用{% recursetree categories %}
。
在recursetree
块中,node
被硬编码到树的单个节点,children
被硬编码到该节点的子节点,但nodes
只是一个示例模板变量名称。