我正在考虑从 金字塔 (正式repoze.bfg)因为遍历比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/

金字塔具有处理此操作的功能是一种不错的方法,但它使用前缀“ @@”。有没有办法将其更改为“+”,以便我可以保持我的URL相同(您知道他们对Cool 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