【发布时间】:2013-11-15 17:15:32
【问题描述】:
这个关于MPTT对象和{% recursettree %}模板标签使用的问题与this one有关。
我的 Django 模型:
from mptt.models import MPTTModel, TreeForeignKey
class myModel(MPTTModel):
myIntA = models.IntegerField(default=0)
myParent = TreeForeignKey('self', null=True, blank=True, related_name='children')
我的观点:
myModelList = myModel.objects.all()
for i in range(len(myModelList)):
myModelList[i].myIntB = i
return render(
request,
'myApp/myTemplate.html',
Context(
{
"myModels": myModelList,
}
)
)
以上合法吗?您可以看到我为每个 myModel 对象添加了一个变量 myIntB。 但是,当我尝试在下面的模板中打印 myIntB 时,什么也没有出现。
如何从模板访问 myIntB?这不是我为此模型定义的字段,我也不希望它是。我只希望 myModel 在渲染这个特定模板的过程中增加这个额外的变量。问题是我看不到使用recursetree 模板标签这样做。
我的模板:
{% load mptt_tags %}
<ul>
{% recursetree nodes %}
<li>
{{node.id}} {{node.myIntA} {{node.myIntB}}
{% if not node.is_leaf_node %}
<ul>
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
</ul>
【问题讨论】:
标签: python django templates django-templates django-mptt