2010-12-15 37 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