1

トラバーサルはURLディスパッチよりもはるかに適しているため、Webアプリをpylonsからpyramid(正式にはrepoze.bfg)に移動することを検討してます

現在、多数のビューを持つobjがある場合、URLに「+」というプレフィックスが付いたビュー名があります。例えば:

/path/to/obj/   (default view)
/path/to/obj/+custom_view1
/path/to/obj/+custom_view2
/path/to/obj/+edit
/path/to/obj/+delete
/path/to/obj/sub_obj/

Pyramidにはこれを処理する機能がありますが、これは優れた方法ですが、プレフィックス「@@」を使用します。これを「+」に変更して、URLを同じに保ち(クールなURLについて彼らが何を言っているか知っている)、この機能を使用できるようにする方法はありますか?

4

1 に答える 1

3

はい、いいえ、ビュー プレフィックスを "@@" から変更できますが、新しいプレフィックスも 2 シンボル長にする必要があります。traverser のソースを参照してください。

デフォルトの代わりにサブクラスResourceTreeTraverser化して登録すると、うまくいくはずです。

from pyramid.traversal import ResourceTreeTraverser as BaseResourceTreeTraverser

class ResourceTreeTraverser(BaseResourceTreeTraverser):
    VIEW_SELECTOR = "++"

from pyramid.config import Configurator
from pyramid.interfaces import ITraverser
from zope.interface import Interface

config = Configurator()
config.registry.registerAdapter(ResourceTreeTraverser, (Interface,), ITraverser)

個人的には、任意の長さのビュー プレフィックスを許可するように VIEW_SELECTOR をリファクタリングする必要があると思います。

于 2011-01-08T13:39:43.297 に答える