Django模板不呈现变量的方法

2024-05-20 19:23:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我显然是某种黑魔法的受害者。。。你知道吗

以下是我呈现的模板:

context = Context({'my_cube': c})
template = Template(
    '{% load cube_templatetags %}'
    '{{ my_cube|inspect }} {{ my_cube.measure }}'
)

以下是inspect过滤器的实现:

def inspect_object(obj):
    return obj.measure()

下面是渲染给我的:

>>> template.render(context)
u'6 None'

有人知道为什么我的_立方体测量}}显然函数调用成功了???你知道吗

注意:度量函数没有魔法,内部状态没有改变,我测试过,每次都给出相同的结果,我还测试过把inspect放在{立方体测量}}.... 不会改变什么。我完全不知道发生了什么。。。你知道吗

编辑: 我知道它是从哪里来的。但还是很奇怪。由于某些原因,我的对象的属性不是由template.Variable解析的:

>>> Variable('measure').resolve(c) == None
True
>>> Variable('testitesti').resolve(c) == None
True
>>> c.testitesti()
68
#implementation of testitesti :
def testitesti(self):
    return 68

Tags: nonetrueobjreturnmydefcontexttemplate
2条回答

嗯。。。我找到那该死的东西了!你知道吗

我试图呈现的对象有一个__getitem__方法是空的,所以词汇索引对这个对象有效(没有抛出错误),所以当然没有进行函数调用!你知道吗

正在注册为过滤器,是吗?我想是的,否则整个模板都会窒息。是否存在保留字冲突?inspect毕竟是一个很有意思的术语。你试过把那个过滤器改名成别的吗?你知道吗

相关问题 更多 >