2016-09-19 55 views
1

我想知道是否有django-cms內置方式顯示/不顯示用戶的佔位符或插件,具體取決於其相關組。Django CMS限制某些羣組佔位符/插件的視圖

例如:我有一個電子商務網站,在產品頁面中,我想在側邊欄佔位符中顯示一個特殊優惠插件,用於僅屬於「訂閱者」組的用戶,因此不是用戶部分內容不會在邊欄中看到插件

我應該如何在模板中創建條件,以便根據組顯示不同的佔位符,還是有更好的方法?

回答

0

假設您的特價商品插件是您寫的自定義插件,您可以簡單地覆蓋插件的render方法。

class SpecialOffers(CMSPluginBase): 
    ... 

    def render(self, context, instance, placeholder): 
     context = super(SpecialOffers, self).render(context, instance, placeholder) 
     # grab user from context 
     request = context.get('request', None) 
     user = request and request.user 
     # check user related group condition 
     context['show_special_offers'] = False 
     if user and user.in_right_group(): 
      context['show_special_offers'] = True 
     return context 

然後,您可以在模板的特殊優惠插件使用show_special_offers,以確定是否應給予特別優惠插件的內容。