【问题标题】:Plone/Zope style view overrides in PyramidPyramid 中的 Plone/Zope 样式视图覆盖
【发布时间】:2016-09-11 16:49:50
【问题描述】:
我有
- 定义视图的附加产品(“my_view”)
- 使用此插件的应用程序
应用程序启动期间配置器会扫描两个应用程序views.py。
我的应用程序需要更具体的my_view 版本,因为插件提供的通用my_view 不了解应用程序特定的详细信息。什么是一个好的金字塔模式这样做,这样金字塔配置器就不会发生冲突?我可以注册一个具有相同名称和上下文更具体IRequest 或类似内容的视图吗?
【问题讨论】:
标签:
pyramid
zope
zope.component
【解决方案1】:
如果你想覆盖一个视图,如果视图是在插件中定义的,它通常“正常工作”。
config.include('cool_addon')
config.add_view(...)
这是可行的,因为 Pyramid 将看到您的视图更接近应用程序的顶层,并且比cool_addon 中定义的视图具有更高的优先级。如果由于某种原因无法实现这样的结构,蛮力方法是 config.commit() 旧配置,然后添加您的视图,此时它将覆盖旧配置。