ピラミッドトラバーサルのビュープレフィックスを「@@」から「+」に変更します

StackOverflow https://stackoverflow.com/questions/4427617

  •  09-10-2019
  •  | 
  •  

質問

Webアプリの移動を検討しています パイロンピラミッド (正式にはrepoze.bfg)TraversalがURLディスパッチよりもはるかに優れているためです。

現在、私が多くのビューを持つ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について彼らが言うことを知っていることを知っています)、この機能を使用できます。

役に立ちましたか?

解決

はいといいえ、[@@]からビュープレフィックスを変更できますが、新しいプレフィックスも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をリファクタリングして、任意の長さビューのプレフィックスを許可する必要があると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top