トラバーサルでは、ツリーの構造を知っている必要があり、オンデマンドでコンテキストオブジェクトをロードできる必要があります。__name__URLは、ロケーション認識プロパティを使用して、コンテキストに関して生成され__parent__、URLを構築します。
/
|- login
|- users
|- 1
|- edit
したがって、User(id=1)コンテキストオブジェクトがあり、ログインしたいとします。ビューがを介して登録されている場合は@view_config(context=Root, name='login')、を介してURLを生成できますrequest.resource_url(request.root, 'login')。これは、ツリーのルートに相対的なURLを生成するようにPyramidに指示しています。
一方、ログイン時にユーザーを編集させたい場合はUser、URLを生成するために、そのユーザーの位置認識オブジェクトをロードする必要があります。request.resource_url(user, 'edit')ここで、は有効な属性を持つのインスタンスですuser。User(id=1)__name____parent__
場所を認識しないコンテキストを渡すと、Pyramidがオブジェクトがツリー内にあると考える唯一の正しい場所であるため__parent__、ユーザーがマウントされているかのようにURLが生成されます。/
ロケーション認識オブジェクトをロードできるため、トラバーサルは、オンザフライで生成されるオブジェクトではなく、オブジェクトの永続的なツリーで最適に機能することを強調します。ユーザーを直接ロードして、そのURLを生成する場合は、ユーザー__parent__を既に入力しておく方がはるかに便利です。__name__