我想知道是否有django-cms内置方式显示/不显示用户的占位符或插件,具体取决于他们的相关组。
例如:我有一个电子商务网站,在产品页面中我想在侧边栏占位符中显示一个特殊优惠插件,仅适用于属于“订阅者”群组的用户,因此用户不属于它不会在侧栏中看到插件
我是否应该在模板中创建条件,以便根据组显示不同的占位符,或者有更好的方法?
答案 0 :(得分: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
作为特别优惠插件,以确定是否应该呈现特价优惠插件的内容。