0

我正在尝试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将-part更改为:

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>

(我之前已经尝试过,但是没有用)

4

1 回答 1

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>

我认为您正在将片段的响应嵌入到其他代码中。

于 2012-05-23T22:47:55.563 回答