我正在寻找一种方法,当一个'员工 - 用户'时,不会自动显示CMS工具栏(版本3.3.0)。登录。
只有在 A B C
0 1 1 a
1 2 3 b
2 3 4 c
1 5 4 e
位于网址时才会激活工具栏
documentation提到?edit
选项,但启用时我看不到任何效果。还有描述:
"如果为True,则工具栏隐藏在django CMS的页面中。"
对我来说似乎并不完全清楚......
有什么想法吗?
答案 0 :(得分:2)
如果您将?toolbar_off
添加到网址,则工具栏会完全消失(无切换按钮)。 ?edit
将其重新打开。
要自动将其关闭:
(A)你可以在登录链中添加类似中间件或钩子的东西并在那里添加参数。
(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
答案 1 :(得分:0)
我已覆盖login.html
,并在?toolbar_off
隐藏的输入值中添加了结尾的{{ next }}
。
<form action="{{ app_path }}" method="post" id="login-form">{% csrf_token %}
<div class="form-element-wrapper">
<input class="form-input" type="text" name="username" autofocus="" maxlength="254"
required="" id="id_username" data-cip-id="id_username">
<span class="form-input-highlight"></span>
<span class="form-input-bar"></span>
<label for="username" class="form-label">Username</label>
</div>
<div class="form-element-wrapper">
<input class="form-input [% password_css %]" type="password" name="password" required=""
id="id_password" data-cip-id="id_password">
<span class="form-input-highlight"></span>
<span class="form-input-bar"></span>
<label for="password" class="form-label">Passwort</label>
<!-- THIS IS THE IMPORTANT LINE! -->
<input type="hidden" name="next" value="{{ next }}?toolbar_off"/>
</div>
<div class="form-element-wrapper">
<button class="form-element form-button" type="submit"
value="{% trans 'Log in' %}">{% trans 'Log in' %}</button>
</div>
</form>
一个简单的解决方案,如果用户通过登录页面登录。这不会影响通过?edit
的登录。