如何引用对象的属性,因为obj和属性都是变量?



代码如下:

{% for entry in qs %}
{% for field_name in field_names %}
<span>{{entry.field_name}}</span>
{%endfor%}
{%endfor%}

但是在span标签内什么也不会显示。然后改回

{{entry.name}}

"name"是每一项的性质。然后显示正确的值。

为什么?谢谢…

注册一个新的模板标签getattr()

import re
from django import template
from django.conf import settings
numeric_test = re.compile("^d+$")
register = template.Library()
# @register.getattribute
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)

和模板

{% load getattribute %}
<span>{{entry|getattribute:field_name}}</span>

最新更新