【发布时间】:2011-05-24 13:54:15
【问题描述】:
我正在考虑将网络应用从 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/
Pyramid 有一个特性来处理这个是一个不错的方法,但它使用前缀“@@”。有没有办法把它改成“+”,这样我就可以保持我的网址不变(你知道他们对酷网址的看法,)并使用这个功能。
【问题讨论】:
-
这应该被标记为“金字塔”,但它是新的,我没有足够的代表。
-
+ 通常用于创建新对象/项目的表单,所以我建议不要这样做,因为它可能会造成混淆。那说@@(两只瞪大的眼睛,那个观点,看到了吗?哈哈)可能也不是最漂亮的,但我不知道如何改变它。顺便说一句,你需要在 Pyramid 中使用 @@ 吗?在 Zope 中,如果与子对象存在名称冲突,则只需要 @@。
-
如果你想要 +,为什么不简单地将它作为视图名称的一部分呢?
config.add_view(name='+edit')? -
正如 Lennart 所说,如果您满足于不将任何子对象命名为与视图相同的名称('custom_view1',...),则不需要视图前缀。
-
我总是想要视图前缀(ant不只是在视图名称中添加“+”)的原因是我可以获得遍历以避免调用 context.__getitem__ (我的应用程序的情况将包括一个数据库查询。)
标签: python repoze.bfg pyramid