在控制器中,我定义了2种方法:

foob​​ar.py:

class foo(self):
    c.help_text = 'help'
    return render('/index.html')

class bar(self):
    return render('/index.html')


index.html:

${c.help_text}


这给我一个错误==> AttributeError:'ContextObj'对象没有属性'help_text'

阅读一些mako文档后,我尝试:

    % if c.help_text is UNDEFINED:
        foo
    % else:
        ${c.help_text}
    % endif


这也给我一个错误。然后在我的development.ini中,输入:

mako.strict_undefined = false




[app:main]


这仍然给我一个错误==> AttributeError:'ContextObj'对象没有属性'help_text'

最佳答案

我相信您的控制器代码不正确。您的第一个样本应该是...

def foo(request):
    c.help_text = 'help'
    return render('/index.html')

def bar(request):
    return render('/index.html')


...要么...

class Controller(object):
    def foo(self, request):
        c.help_text = 'help'
        return render('/index.html')

    def bar(self, request):
        return render('/index.html')


我相信,因为您的控制器代码不正确,“ c.help_text”实际上不是在响应查询处理而运行,而是在启动应用程序时正确处理。

如果您纠正了这些错误,但是仍然有问题,请提供更多有关该错误的信息?您有堆栈跟踪或确切的行号吗?

09-15 12:22