将金字塔遍历中的视图前缀从“@@”更改为“+”

2024-05-14 07:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在考虑将一个web应用程序从pylons移动到{a2}(正式)休止.bfg)因为遍历比url调度更适合我的应用程序。在

目前,当我有一个包含多个视图的obj时,我会在url中以“+”作为前缀。e、 g.:

/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有一个处理这个问题的功能,但是它使用前缀“@@”。有没有办法把它改成“+”这样我就可以保持我的网址不变(你知道他们怎么说很酷的网址,)并使用这个功能。在


Tags: topath功能视图webobj应用程序a2
1条回答
网友
1楼 · 发布于 2024-05-14 07:47:40

是和否,您可以将视图前缀从“@@”更改为,但新前缀的长度也应为2-symboldlength,请参见sources中的遍历器。在

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)

就个人而言,我认为应该重构视图选择器,以允许任何长度的视图前缀。在

相关问题 更多 >

    热门问题