【问题标题】:Django CMS restrict view of placeholders/plugins for certain groupsDjango CMS 限制某些组的占位符/插件的视图
【发布时间】:2017-01-26 20:59:50
【问题描述】:

我想知道是否有 django-cms 内置的方式来为用户显示/不显示占位符或插件,具体取决于他们的相关组。

例如:我有一个电子商务网站,在产品页面中,我想在侧边栏占位符中显示一个特别优惠插件,仅适用于属于“订阅者”组的用户,因此不属于“订阅者”组的用户它不会在侧边栏中看到插件

我应该在模板中使用制造条件,以便根据组显示不同的占位符,还是有更好的方法?

【问题讨论】:

    标签: django-cms


    【解决方案1】:

    假设您的特价插件是您编写的自定义插件,您可以简单地覆盖该插件的 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,以确定是否应该渲染特价插件的内容。

    【讨论】:

      猜你喜欢
      • 2012-10-10
      • 2016-05-04
      • 2015-09-09
      • 1970-01-01
      • 2017-02-16
      • 2013-12-28
      • 2013-03-22
      • 1970-01-01
      • 2017-09-26
      相关资源
      最近更新 更多