有没有办法让字段集可折叠,但是开始展开?将折叠添加到字段集类时,它将获得该功能,但会开始折叠。我查看了显示/隐藏字段集内容的JS,但看起来并不像我想要的那样做,所以我假设我必须将我的拥有。只是想在我完成这项工作之前进行检查。Django Admin - 将折叠添加到字段集,但让它开始展开
回答
django-grappelli提供了此功能之一。这是关于该功能的wiki page(带截图)。
老问题,但我遇到了同样的一个,并可以使用标准的Django来实现的答案想出了:
创建文件:管理/(APP)在/(模型)/change_form.html您模板目录,使你的(模型)你的(应用程序)使用该表单文件。
将此代码添加到文件:
{% 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 %}
有关使用,而不是 “正规军” 的jQuery django.jQuery的更多信息,请参见:http://blog.picante.co.nz/post/Customizing-Django-Admin-with-jQuery--Getting--is-not-a-function/
从Setomidor答案开始,我想建议一个更简单的替代方案,它完全符合你的要求(如果Grappelli不是一个选项,显然)。
创建模板覆盖中的说明(admin/(app)/(model)/change_form.html
)和不是删除了“添加”模式的情况下可折叠效果,只需呼叫现场设置崩塌的点击方法(即与小链接显示/隐藏文本),以便在页面加载后立即展开整个字段集。
admin.py:
class PageAdmin(admin.ModelAdmin):
fieldsets = (
(None, {
'fields': ('title', 'content',)
}),
('Other Informations', {
'classes': ('collapse', 'open'),
'fields': ('slug', 'create-date',)
}),
)
模板/ app_label /模型名称/ change_form.html:
{% extends "admin/model_name/change_form.html" %}
{% block extrahead %}
{{ block.super }}
<script src="{{ STATIC_URL }}admin/js/collapse-open.js" type="text/javascript"></script>
{% endblock %}
静态/管理/ JS/collapse-open.py:
(function($) {
$(document).ready(function() {
$('fieldset.collapse.open').removeClass('collapsed');
});
})(django.jQuery);
我调整了JavaScript以将“打开”更改为“隐藏” – mogga 2016-03-30 22:39:54
用grappelli docs代码只需要添加“类”:('grp-collapse grp-closed')
例如
class EntryOptions(admin.ModelAdmin):
...
fieldsets = (
('', {
'fields': ('title', 'subtitle', 'slug', 'pub_date', 'status',),
}),
('Flags', {
'classes': ('grp-collapse grp-closed',),
'fields' : ('flag_front', 'flag_sticky', 'flag_allow_comments',),
}),
注:如果您使用格拉佩利版本< 2.4使用“GRP-封闭”,而不是“塌陷封闭” * 实际上的倒闭,关闭“仍是工作,但建议使用新班
我知道这是真实的老,但我也只是遇到了这个问题。想到这个方式太难了,我发现了一个简单的解决方案,似乎完成了涉及0个插件或额外js的工作。
在字段集构建“倒塌”,而不是“崩溃”添加到类:
fieldsets = [
('Start Expanded', {
'fields': ['field1', 'field2', 'field3'],
'classes': ['collapse in',]
})
]
- 1. 展开折叠html字段Firefox
- 2. 添加CSS3过渡展开/折叠
- 3. 将动画添加到ListView以展开/折叠内容
- 4. Django - 将表单添加到django admin中的字段集?
- 5. 将`help_text`添加到Django Admin字段
- 6. 展开/折叠Div
- 7. jquery展开/折叠?
- 8. 折叠/展开optgroups
- 9. 折叠/展开Groupboxes
- 10. 展开/折叠jQuery
- 11. 如何知道Extjs字段集合已折叠或展开
- 12. 级联展开和折叠现场集
- 13. WPF DataBound treeview展开/折叠
- 14. 折叠/展开图片
- 15. ExpandableListView展开和折叠
- 16. 展开并折叠tableview行
- 17. Delphi DBgrid展开/折叠
- 18. 展开和折叠UITableview
- 19. 在Datagridview中展开/折叠
- 20. 用css展开和折叠
- 21. 展开/折叠div元素?
- 22. Android展开/折叠RelativeLayout
- 23. 展开/折叠与HierarchicalDataTemplate
- 24. 展开折叠Javascript代码?
- 25. jQuery Datatables rowGroup折叠/展开
- 26. 折叠/展开的角
- 27. 展开和折叠TreeView
- 28. 展开/折叠跨度?
- 29. 折叠并展开全部
- 30. 展开/折叠HTML表格
谢谢,我很可能最终与该会。我们在另外两个项目中使用了grappelli,我知道它可以做到这一点,当时没有想到它。 – 2009-11-20 15:17:37