我正在尝试显示隐藏django admin change_list. html页面的过滤器框(右边的灰色框)。
我尝试创建一个简单的JavaScript函数,并将其添加到额外的头中,
{% extends "admin/change_list.html" %}
{% block extrastyle %}
{{ block.super }}
<script src="{{ STATIC_URL }}js/jquery-1.6.1.js" ></script>
<script>
function toggle-filter() {
$("#changelist-filter").toggle("slow");
};
</script>
{% endblock %}
字符串
然后我添加了一个超链接,并试图让它像这样运行那个函数
{% block object-tools %}
<ul class="object-tools">
<li><a onclick="toggle-filter()" id="hideBut" href="#" class="viewsitelink">{% trans "Toggle Filter" %}</a></li>
</ul>
{% endblock %}
型
但这一点用都没有。我怎么才能把过滤盒藏起来?
4条答案
按热度按时间mw3dktmi1#
好吧,我所做的是我添加了一些JavaScript到change_list. html像这样:
字符串
我找到了真正的JavaScript here。
w7t8yxp52#
连字符在JavaScript标识符中不是有效字符(您可能会发现有效JavaScript变量名上的this question很有用-请注意,变量名和函数名都算作“标识符”)。
尝试将函数名更改为
toggle_filter
。oknwwptz3#
你可以在ModelAdmin媒体类中添加JavaScript到管理页面。在那里放一个函数来折叠过滤器。
字符串
这里有一个页面,用不同的方式来实现你想要的,没有黑客攻击你的管理员模板。这对我来说似乎是一个更干净的方法。
在django-admin中最小化列表过滤器
omjgkv6w4#
没有一个直接的答案,但grapelli https://github.com/sehmaschine/django-grappelli提供了这个功能,开箱即用,并使用JavaScript代码相应地显示隐藏过滤器,但你可能已经知道grapelli /HTH