猿问

在Django模板中执行getattr()样式查找

当您事先不知道某个属性的名称时,Python的getattr()方法很有用。


此功能也将在模板中派上用场,但我从未想出实现此功能的方法。是否有可以执行动态属性查找的内置标记或非内置标记?


海绵宝宝撒
浏览 816回答 3
3回答

开心每一天1111

最后,我向所讨论的模型添加了一个方法,该方法可以像模板中的属性一样进行访问。不过,我认为,如果内置标签允许您动态查找属性,那就太好了,因为这是我们许多人在模板中经常遇到的问题。

汪汪一只猫

保持get和getattr之间的区别,@register.filter(name='get')def get(o, index):    try:        return o[index]    except:        return settings.TEMPLATE_STRING_IF_INVALID@register.filter(name='getattr')def getattrfilter(o, attr):    try:        return getattr(o, attr)    except:        return settings.TEMPLATE_STRING_IF_INVALID
随时随地看视频慕课网APP
我要回答