django CMS 登录时不显示工具栏

标签 django django-cms

我正在寻找一种在“员工用户”登录时不自动显示 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/

相关文章:

django - "request"cookie 是否应该设置安全标志?

python - 你能编写一个针对任意状态的 django-fsm 转换吗?

mysql - 在现有架构上执行迁移时出现 Django 迁移错误

django-cms - django cms 'TemplateResponse' 对象没有属性 '_headers'

python - django formset 中的异构形式

python - Django makemigrations 1.8.18 ValueError : Lookup failed for model referenced by field

python - Django CMS 支持分类法或标签吗?

python - Django-CMS apphooks 菜单和反向

django-cms - 是否可以访问模板中的占位符名称?

python - Django 新的 syncdb super 用户在 pycharm 中崩溃