2010-12-15 63 views
2

所以这个问题has been asked before,但没有很详细地回答。主塔:如何编写自定义404页面?

我想重写默认的Pylons错误页面,使其更好,自定义。我得尽可能在error.py覆盖控制器,如下所示:

def document(self): 
    """Render the error document""" 
    resp = request.environ.get('pylons.original_response') 
    content = literal(resp.body) or cgi.escape(request.GET.get('message', '')) 
    custom_error_template = literal("""\ 
    # some brief HTML here 
    """) 
    page = custom_error_template % \ 
     dict(prefix=request.environ.get('SCRIPT_NAME', ''), 
      code=cgi.escape(request.GET.get('code', str(resp.status_int))), 
      message=content) 
    return page 

该工程确定。我现在想要做的是在模板目录中使用模板,以便404页面可以继承我通常的布局模板,CSS等。

(我知道这对于500个错误来说是个坏主意 - 我将在error.py中检查我使用模板之前的代码是404而不是文字。)

所以,这里是问题所在。我如何定义custom_error_template指向我的模板,而不是文字?

回答

1

你应该能够使用render方法(从yourapp.lib.base导入,并使用return render('/path/to/error/template')

+0

厂,但我得到'UndefinedError:'g“not defined'。任何想法如何确保模板知道全局变量? – AP257 2010-12-17 11:27:15

+0

想通了:从wdmmg.lib.base导入* – AP257 2010-12-17 11:37:07

+2

像往常一样,需要5分钟D jango需要2个小时和一个SO问题才能找出主塔... – AP257 2010-12-17 11:37:42