2015-04-03 41 views
1

http://pyramid-cookbook.readthedocs.org/en/latest/views/chaining_decorators.html我可以裝飾一個金字塔的看法:確保在金字塔的應用程序每個視圖都裝飾有定製的裝飾

@view_config(decorator=a_special_decorator, renderer='json') 
def myview(request): 
    return {'a':1} 

確定的,但我需要確保在金字塔的應用程序的每個視圖裝飾有a_special_decorator。有沒有一種方法可以確保在實時應用程序或測試階段,它是如此?

+0

您希望用這個裝飾器實現什麼功能? – matino 2015-04-05 19:24:56

+0

我想爲每個視圖提供像View Model這樣的東西。 – LetMeSOThat4U 2015-04-07 11:14:17

回答

0

我認爲更好的方法是:使用一個基於類的視圖,並從具有您要添加的功能的相同基類繼承所有視圖。

不過,如果你想裝飾的應用程序中的所有意見的做法將是繼

  • 創建scan()方法,這需要Python模塊作爲輸入,並通過讀取,類似金字塔的自己的掃描

  • 如果您發現scan()視圖函數簽名,它的裝飾功能和就地取代了原來的功能模塊中

  • 在字母金字塔本身掃描模塊之前調用您的自定義掃描,以便金字塔將拾取「固定」功能