webapp2 + jinja2:我如何获得uri_for()在jinja2-views中工作 [英] webapp2 + jinja2: How can i get uri_for() working in jinja2-views
本文介绍了webapp2 + jinja2:我如何获得uri_for()在jinja2-views中工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何添加通过模型特定的网址到模板。
比方说,我想建立一个编辑链接。
我猜,使用uri_for()函数将是一个简单的方法。
但是下面给出了UndefinedError:'webapp2'未定义 / p>
{%webapp2.uri_for(editGreeting,greeting.key()。id())%}
或者我应该在MainPage-Request-Handler中准备这些内容吗?
如果是这样,我不知道如何将它们添加到每个问候。
以下代码示例取自:
http://webapp-improved.appspot.com/tutorials/gettingstarted/templates.html
控制器/处理程序
class MainPage(webapp2.RequestHandler):
)get get(self):
guestbook_name = self.request.get('guestbook_name')
greetings_query = Greeting.all()。ancestor(
guestbook_key(guestbook_name))。order(' -date')
greetings = greetings_query.fetch(10)
如果users.get_current_user():
url = users.create_logout_url(self.request.uri)
url_linktext ='注销'
其他:
url = users.create_login_url(self.request.uri)
url_linktext ='登录'
template_values = {
'greetings':问候,
'url':url,
'url_linktext':url_linktext,
}
path = os.path.join(os.path .dirname(__ file__),'index.html')
self.response.out.write(template.render(path,template_values))
模板/视图:
< html>
< body>
{%for greeting in greetings%}
{%if greeting.author%}
< b> {{greeting.author.nickname}}< / b>写道:
{%else%}
一位匿名人士写道:
{%endif%}
< blockquote> {{greeting.content | escape}}< / blockquote> ;
{%endfor%}
< form action =/ signmethod =post>
< div>< textarea name =contentrows =3cols =60>< / textarea>< / div>
< div>< input type =submitvalue =Sign Guestbook>< / div>
< / form>
< a href ={{url}}> {{url_linktext}}< / a>
< / body>