Django模板上下文不适用于导入的类

时间:2012-03-24 17:18:27

标签: python django google-app-engine templates

我正在使用Django对appengine的模板,并且遇到一个问题,即我从另一个包导入的类没有正确地提供给模板上下文。上下文在代码中设置,但在模板中呈现后为空。

从广义上讲,这是代码。 prop1在下面第一个示例中的模板中不可用,但在第二个示例中。 MyClass在两种情况下都是相同的。

这不起作用:

from module import MyClass
context = MyClass()
self.response.out.write(template.render(path, context))

这样做:

class MyClass(object):
    def __init__(self):
        self.prop1 = "prop1"

context = MyClass()
self.response.out.write(template.render(path, context))

如果我在上面的代码中记录上下文,我得到:

<module.MyClass object at 0x107b1e450>

导入时,以及:

<__main__.MyClass object at 0x103759390>

当它在同一个文件中定义时。

有什么可能导致这种行为的线索?

1 个答案:

答案 0 :(得分:0)

如果你需要自定义上下文类,它应该扩展Django的BaseContext。否则,它将不具有常规上下文的默认行为。

from django.template import BaseContext

class MyClass(BaseContext):
    # Your stuff here
    pass