我正在尝试使用create_logout_url
在一个简单的appengine网站中创建一种管理菜单,但它目前表现得非常糟糕。看看下面的代码:
menu = []
logout_link = "<a href='%s'>Log out</a>" % users.create_logout_url('/blog')
menu.append(logout_link)
new_entry = ''
if users.is_current_user_admin():
new_entry = "<a href='%(newpost)s'>New entry</a>" % {'newpost': self.uri_for('blog_entry')}
menu.append(new_entry)
return ','.join(menu)
预期输出应该是这样的:
<a href='/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout'>Log out</a>,<a href='/blog/newpost'>New entry</a>
但实际上是:
<a href="<a href='/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout'>Log out</a>,<a href='/blog/newpost'>New entry</a>">Log out</a>
有什么想法吗?
我正在尝试在我的基本处理程序中使用上面的代码(其中包含大量可在任何地方重用的代码,如此管理菜单和模板函数),如果它有帮助或重要。
将logout_link
- 部分更改为:
logout_link = users.create_logout_url('/blog')
结果如下:
<a href="/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout,<a href='/blog/newpost'>New entry</a>">Log out</a>
(之前我已经尝试过,但无济于事)
答案 0 :(得分:0)
Monotux,您能否向我们提供有关您的代码的更多详细信息。你说你正在使用其他一些菜单和模板功能。
提供的代码段会生成正确的代码:
<a href='/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout'>Log out</a>,<a href='/blog/newpost'>New entry</a>
鉴于你看到的两个输出:
<a href="<a href='/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout'>Log out</a>,<a href='/blog/newpost'>New entry</a>">Log out</a>
<a href="/_ah/login?continue=http%3A//localhost%3A8080/blog&action=Logout,<a href='/blog/newpost'>New entry</a>">Log out</a>
两者都是
形式<a href='...'>Log out</a>
我认为您正在将代码段的响应嵌入到其他代码中。