我将变量i
从视图传递给模板。当我打印{{ subject.i.id }}
时,它无效。
# the view
return render_to_response(
'feedback/feedback.html',
{'subjects': subject_list, 'n': n, 'list': sub_list, 'i': 0},
context_instance=RequestContext(request))
# the template
{% for s in list %}
<div id="{{ subjects.i.id }}">
{% for subject in s %}
<div> {{ subject }} </div>
{% endfor %}
</div>
{% endfor %}
答案 0 :(得分:3)
您需要一个模板过滤器才能使用
我的类似案例的模板过滤器:
import re
from django import template
from django.conf import settings
numeric_test = re.compile("^\d+$")
register = template.Library()
def getattribute(value, arg):
"""Gets an attribute of an object dynamically from a string name"""
if hasattr(value, str(arg)):
return getattr(value, arg)
elif hasattr(value, 'has_key') and value.has_key(arg):
return value[arg]
elif numeric_test.match(str(arg)) and len(value) > int(arg):
return value[int(arg)]
else:
return settings.TEMPLATE_STRING_IF_INVALID
register.filter('getattribute', getattribute)
# in the template
{{ folder_info|getattribute:folder.id }}
答案 1 :(得分:0)
是的,如果你附上代码那就太好了。确保正确呈现,并且对象具有兼容的属性名称