如何为@view_config
- 装饰的函数或类提供配置的值?
E.g。
@view_config(route_name='example', renderer=some_config['template.name'])
class MyClass(BaseView):
...
或者
@view_defaults(route_name='example', renderer=some_config['template.name2'])
class MyClass2(BaseView):
...
或者
@view_config(route_name='example', renderer=some_config['template.name3'])
def method3(request):
...
我很难知道从哪里开始,因为我正在尝试编辑一个金字塔插件,它将其配置集中在一个includeme
函数中,所以它没有有任何明显的我可以包括,并且很难知道@view_config
装饰者可以使用什么。
答案 0 :(得分:2)
您可以使用declarative配置添加视图(使用@view_config
正在执行的操作,或者通过调用config.add_view()
方法使用imperative configuration。
在这种情况下,由于您需要访问Pyramid注册表和设置文件,因此更容易添加视图。
在__init__.py
你可以做到:
settings = config.registry.settings
# You need to call config.add_route("foobar") to map view to URL also
config.add_view('views.MyClass', route_name="foobar", renderer=settings['template.name3'])
然后在views.py
:
class MyClass(BaseView):
pass
@view_config()
和add_view()参数相等。
我很瘦你也可以为同一个视图混合view_config
和add_view()
个参数,但我不确定是否这样。希望这会有所帮助。