Pyramid Docs - Using Hooksで説明されているように@notfound_view_configを使用すると、指定したテンプレートをレンダリングできません。
ビュー.py:
@notfound_view_config(renderer='templates/notfound.pt')
def notfound(request):
return Response('Not Found, dude', status='404 Not Found')
テンプレート/notfound.pt:
<html xmlns="http://www.w3.org/1999/xhtml"
metal:use-macro="base">
<tal:block metal:fill-slot="content">
<!-- Example row of columns -->
<div class="row">
<div class="span12">
<h1>Error:</h1>
<p>Uh, oh... you snagged an error:</p>
<pre>"${request}"</pre>
<p>You can return to the <a href="${request.application_url}">homepage</a> if you wish.</p>
</div>
</div>
</tal:block>
</html>
存在しないページにアクセスすると、空白のページに "Not Found, dude" というメッセージが表示されますが、テンプレートには "うーん、ああ...エラーが発生しました!" と表示されるはずでした。要求情報が続きます。
私はこれを間違って読んでいると思います:
notfound_view_config コンストラクターは、pyramid.view.view_config のコンストラクターと同じ引数のほとんどを受け入れます。同じ場所で使用でき、「通常の」ビューの代わりに見つからない例外ビューを常に登録することを除いて、ほぼ同じように動作します。
一方では、pryamid.view.view_config でサポートされているため、「renderer」をパラメーターとして指定できるはずです。一方、「レンダラー」オプションに関係なく、常に [not found exception ビュー][3] をロードしているように聞こえます。
本当に、私の最終的な質問 (および目標) は、ページが見つからない場合にテンプレートを表示/レンダリングするにはどうすればよいかということです。