我有一个Python对象,它是container子类的一个实例。所以这个对象x
,可以表现得像x['name']
。这个对象也有方法,比如x.bar()
。你知道吗
如何从Django模板调用x.bar
?在模板中,x.bar
将始终首先作为x['bar']
计算,这将给出None
。你知道吗
我能想到的最好办法是创建一个对象阴影x
,它没有getitem
。但是我不能delattr
__getitem__
。你知道吗
有更好的主意吗?缺少在上下文或模板标记中手动传递这些调用的结果。你知道吗
谢谢。你知道吗
Tags:
这是Django模板执行表达式求值的方式中的一个基本缺陷。查看模板标记^{} 以获得解决方法。例如,
{% expr x.bar(1,2,3) as snort %}
在当前上下文中为您提供一个名为snort
的新变量。你知道吗或者,您可以尝试Jinja2模板。它们与Django非常接近,但是它们允许使用完整的Python。你知道吗
注意:Jinja2与Django的模板系统不同,如果您使用的是任何依赖于模板系统的嵌入Django应用程序的页面,这可能会破坏它们。对于
{% expr %}
标记,情况并非如此。你知道吗相关问题 更多 >
编程相关推荐