// Add toggle to anchor tag
var toggles = document.querySelectorAll('fieldset.collapse a.collapse-toggle');
var toggleFunc = function(ev) {
ev.preventDefault();
var fieldset = closestElem(this, 'fieldset');
if (fieldset.classList.contains('collapsed')) {
// Show
this.textContent = gettext('Hide');
fieldset.classList.remove('collapsed');
} else {
// Hide
this.textContent = gettext('Show');
fieldset.classList.add('collapsed');
}
};
for (i = 0; i < toggles.length; i++) {
toggles[i].addEventListener('click', toggleFunc);
}
收件人:
// Add toggle to anchor tag
var toggles = document.querySelectorAll('fieldset.collapse a.collapse-toggle');
// NEW: select toggles to open
var open_toggles = document.querySelectorAll('fieldset.collapse.start-open a.collapse-toggle');
var toggleFunc = function(ev) {
ev.preventDefault();
var fieldset = closestElem(this, 'fieldset');
if (fieldset.classList.contains('collapsed')) {
// Show
this.textContent = gettext('Hide');
fieldset.classList.remove('collapsed');
} else {
// Hide
this.textContent = gettext('Show');
fieldset.classList.add('collapsed');
}
};
for (i = 0; i < toggles.length; i++) {
toggles[i].addEventListener('click', toggleFunc);
}
// NEW: open toggles
for (i = 0; i < open_toggles.length; i++) {
toggles[i].click();
}
{% extends "admin/change_form.html" %}
{% block extrahead %}
<!-- Load superblock (where django.jquery resides) -->
{{ block.super }}
<!-- only do this on 'add' actions (and not 'change' actions) -->
{% if add and adminform %}
<script type="text/javascript">
(function($) {
$(document).ready(function($) {
//Remove the 'collapsed' class to make the fieldset open
$('.collapse').removeClass('collapsed');
//Remove the show/hide links
$('.collapse h2 a').remove();
//Tidy up by removing the parenthesis from all headings
var $headings = $(".collapse h2");
$headings.each(function(i, current){
var str = $(current).text();
parenthesisStart = str.indexOf('(');
$(current).text(str.substring(0, parenthesisStart));
});
});
})(django.jQuery);
</script>
{% endif %}
{% endblock %}
9条答案
按热度按时间uelo1irk1#
admin.py:
模板/应用程序标签/型号名称/变更表单.html:
静态/管理/js/折叠打开.js:
mbjcgjjk2#
我知道这是真实的的老,但我也刚刚遇到这个问题。经过思考的方式太难,我找到了一个简单的解决方案,似乎得到的工作完成涉及插件或额外的js。
在字段集构造内将“collapse in”而不是“collapse”添加到类中:
avkwfej43#
django-grappelli提供了这个特性,下面是wiki page关于这个特性的介绍(带有截图)。
cbeh67ev4#
配号与grappelli docs只需要添加“类”:(“组-折叠组-关闭”)
例如
字符串
注意:如果你使用grappelli版本〈2.4使用'grp-closed'代替'collapse-closed'* 实际上'collapse-close'仍然是工作的但是建议使用新的类
doinxwow5#
从Setomidor的回答开始,我想建议一个更简单的替代方案,它完全符合你的要求(如果Grappelli显然不是一个选项)。
按照说明创建模板覆盖(
admin/(app)/(model)/change_form.html
),而不是删除“add”模型案例的可折叠效果,只需调用字段集折叠器的click方法(即带有显示/隐藏文本的小链接),以便在页面加载后立即展开整个字段集。t1qtbnec6#
我能找到的最快的方法是向fieldset添加一个新类
start-open
然后修改
static/admin/js/collapse.js
。发件人:
收件人:
q0qdq0h27#
老问题,但我遇到了同样的问题,并得出了一个答案,可以使用标准的django实现:
创建文件:admin/(app)/(model)/change_form.html,以使您的(app)的(model)使用该表单文件。
将以下代码添加到文件中:
有关使用django.jQuery而不是“常规”jQuery的更多信息,请参见:http://blog.picante.co.nz/post/Customizing-Django-Admin-with-jQuery--Getting--is-not-a-function/
ut6juiuv8#
所以这个对我很有效:
ozxc1zmp9#
对于django4.x,这里是我的admin/js/collapse.js addstart-open在类中