Я, очевидно, жертва какой-то темной магии ...
Вот шаблон, который я отображаю:
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