顯然我的一些黑暗魔法的受害者...Django的模板不渲染變量的方法
這裏是我渲染一個模板:
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'
有誰知道爲什麼地獄{{my_cube.measure}}不能正確渲染,而顯然函數調用成功?
注意:測量函數沒有魔法,沒有內部狀態改變,我測試過,並且每次都給出相同的結果,我還測試了將{{cube.measure}}之前的檢查。不會改變任何東西。我完全不知道發生了什麼......
編輯: 我知道它似乎來自哪裏。但它仍然很奇怪。出於某種原因,我的對象的屬性不能通過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
實際上,這個'檢查'過濾器只是我寫的一個調試過濾器,在我觀察到這個錯誤之前......另外,這將是一個奇怪的巧合,有一個名稱的衝突,但.... tadaaaa :我仍然獲得預期的價值!但我嘗試... – sebpiq 2010-06-24 13:17:15
是的...如果我打電話過濾器'my_super_unique_inspect'同樣的事情! – sebpiq 2010-06-24 13:19:40