我的金字塔项目中有这样的代码:
class SomeViews(object):
@view_config(...)
def view_a(request):
return {...}
@view_config(...)
def view_b(request):
return {...}
我想修饰视图方法来修改返回的字典。如果decorator是view_config
之前的第一个装饰器,则可以将它应用于视图。否则金字塔仍然使用原来的功能,由于金星的性质。在
因为我将对一个类中的所有方法应用相同的装饰器,所以我更喜欢使用类装饰器。所以不去做
^{pr2}$对于每一种方法,我都愿意去做
@my_decorator("some_meta_info")
class SomeViews(object):
...
但是因为类decorator是在view_config
调用之后执行的,所以它同样不能用于Venusian。我查看了view_defaults
实现,以获得如何解决问题的提示,但我没有弄清楚它是如何工作的。在
有什么提示吗?我想做的,只是修改一组视图方法的结果字典。我还考虑过使用BeforeRender
事件,但我没有找到在事件处理程序中以可以访问的方式注入所需元数据的方法。在我看来,使用装饰器将是更自然、更具Python味的方式。在
将
view_defaults
看作是传递给类中每个view_config
的默认选项。但是,如果您向view_config
添加一个装饰器,默认的装饰器将被覆盖,并且您的默认装饰器将被删除。在相关问题 更多 >
编程相关推荐