0

create_logout_url些細な appengine-site で一種の管理メニューを作成するために使用しようとしていますが、現在、かなり奇妙な動作をしています。以下のコードを見てください。

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>

そして、あなたが見ている2つの出力を考えると:

<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 に答える