Django CMS 限制某些组的 placeholders/plugins 视图
Django CMS restrict view of placeholders/plugins for certain groups
我想知道是否有 django-cms 内置方法 show/not 为用户显示占位符或插件,具体取决于他们的相关组。
例如:我有一个电子商务网站,我想在产品页面的侧边栏占位符中显示一个特价插件,仅供属于 'subscribers' 组的用户使用,这样用户不是它的一部分将不会在侧边栏中看到该插件
我应该在模板中使用 making 条件来做到这一点,以便根据组显示不同的占位符,还是有更好的方法?
假设您的特价商品插件是您编写的自定义插件,您可以简单地覆盖插件的 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
,以确定是否应呈现特价插件的内容。
我想知道是否有 django-cms 内置方法 show/not 为用户显示占位符或插件,具体取决于他们的相关组。
例如:我有一个电子商务网站,我想在产品页面的侧边栏占位符中显示一个特价插件,仅供属于 'subscribers' 组的用户使用,这样用户不是它的一部分将不会在侧边栏中看到该插件
我应该在模板中使用 making 条件来做到这一点,以便根据组显示不同的占位符,还是有更好的方法?
假设您的特价商品插件是您编写的自定义插件,您可以简单地覆盖插件的 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
,以确定是否应呈现特价插件的内容。