我正在寻找一种在“员工用户”登录时不自动显示 CMS 工具栏(版本 3.3.0)的方法。
仅当 URL 中包含 ?edit
时,才应激活工具栏。
documentation提到了 CMS_TOOLBAR_HIDE
选项,但启用后我没有看到任何效果。还有描述:
"If True, the toolbar is hidden in the pages out django CMS."
我似乎不太清楚......
有什么想法吗?
最佳答案
如果将 ?toolbar_off
添加到 URL,工具栏将完全消失(没有切换按钮)。 ?edit
将其重新打开。
自动关闭它:
(A) 您可以在登录链中添加中间件或 Hook 之类的东西,然后在其中添加参数。
(B) 您可以子类化/扩展 CMSToolbar
以覆盖以下默认行为:
def init_toolbar(self, request):
self.request = request
self.is_staff = self.request.user.is_staff
self.edit_mode = self.is_staff and self.request.session.get('cms_edit', False)
self.show_toolbar = self.is_staff or self.request.session.get('cms_edit', False)
if self.request.session.get('cms_toolbar_disabled', False):
self.show_toolbar = False
特别是最后一行必须更改为使用默认值 True
:
if self.request.session.get('cms_toolbar_disabled', True):
self.show_toolbar = False
关于django CMS 登录时不显示工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149134/