此问题与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%}来显示myModels集合中固有的树结构。
我的模板:
{% 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>