我正在考虑将web应用程序从pylons迁移到pyramid (以前是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/金字塔有一个功能来处理这是一个很好的方式,但它使用了前缀"@@“。有没有办法把它改成"+“,这样我就可以保持我的urls不变(你知道他们怎么说很酷的urls,)并使用这个功能。
发布于 2011-01-08 21:39:43
可以或不可以,您可以将视图前缀从"@@“更改,但新的前缀也应该是2-symbold长度,有关遍历器,请参阅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)就我个人而言,我认为VIEW_SELECTOR应该被重构,以允许任何长度的视图前缀。
https://stackoverflow.com/questions/4427617
复制相似问题