2017-01-31 75 views
0

我試着與Templetor在web.py一起使用降價,但我想不出我在想念web.py降價全局名稱「降價」是沒有定義

文檔是在這裏什麼http://webpy.org/docs/0.3/templetor#builtins

import markdown 

t_globals = { 
    'datestr': web.datestr, 
    'markdown': markdown.markdown 
} 
render = web.template.render(globals=t_globals) 

class Blog: 
    def GET(self, post_slug): 
     """ Render single post """ 
     post = BlogPost.get(BlogPost.slug == post_slug) 

     render = web.template.render(base="layout") 
     return render.post({ 
       "blogpost_title": post.title, 
       "blogpost_content": post.content, 
       "blogpost_teaser": post.teaser 
      }) 

這裏是我嘗試使用post.html模板內降價

$def with (values) 
$var title: $values['blogpost_title'] 

<article class="post"> 
    <div class="post-meta"> 
    <h1 class="post-title">$values['blogpost_title']</h1> 
    </div> 

    <section class="post-content"> 
    <a name="topofpage"></a> 
     $:markdown(values['blogpost_content']) 
    </section> 

但是我得到這個例外

型 'exceptions.NameError' 在 /博客/ HE-LL-想使用的,您的遊艇和-I-DON-T-想學這個,事情氣味樣的魚/ 全局名稱「降價」是沒有定義

+0

你傳遞給模板的全局變量很好。檢查以確保你實際上試圖用你定義的'render'呈現你的模板,這個'render'知道t_globals。 ...如果您仍有問題,請修改以添加更多代碼。 – pbuck

+0

我添加了更多的代碼來顯示使用渲染方法的視圖 –

+0

就是這樣:或者不要在Blog.GET中重新初始化'render',或者在Blog.GET中添加'globals = t_globals'到調用中 - - 你不能這樣做。 – pbuck

回答

0

你重新初始化render,曾在全球範圍內Blog.GET設置base設置globals一次。只做一次!