如何将'collapse'添加到Django StackedInline中

以同样的方式,您可以添加'classes':['collapse']到您的某个ModelAdmin字段集,我希望能够将Inline Model Admin进行折叠。

此故障单在管理界面中为内联相关对象折叠,正好讨论我要完成的操作。 但同时,在等待下一个版本发布时,最好的解决方案是什么?

仅供参考:我已经提出了一个解决方案,但我认为存在一个更好的解决方案。 我会让投票来照顾它。


我想出了使用jQuery的这个解决方案,它在TabularInlineTabularInline

var selector = "h2:contains('TITLE_OF_INLINE_BLOCK')";
$(selector).parent().addClass("collapsed");
$(selector).append(" (<a class="collapse-toggle" id="customcollapser" href="#"> Show </a>)");
$("#customcollapser").click(function() {
    $(selector).parent().toggleClass("collapsed");
});

您可以使用grappelli - 它支持折叠字段集。 它使用的解决方案与上面提到的解决方案非常相似,但是javascript /编码已经完成 - 您只需将'classes':(折叠关闭)添加到您的字段集(请参阅http://readthedocs.org/docs /django-grappelli/en/latest/customization.html)

例如:

class ModelOptions(admin.ModelAdmin):
    fieldsets = (
        ('', {
            'fields': ('title', 'subtitle', 'slug', 'pub_date', 'status',),
        }),
        ('Flags', {
            'classes': ('grp-collapse grp-closed',),
            'fields' : ('flag_front', 'flag_sticky', 'flag_allow_comments', 'flag_comments_closed',),
        }),
        ('Tags', {
            'classes': ('grp-collapse grp-open',),
            'fields' : ('tags',),
        }),
    )

class StackedItemInline(admin.StackedInline):
    classes = ('grp-collapse grp-open',)

class TabularItemInline(admin.TabularInline):
    classes = ('grp-collapse grp-open',)

从django 1.10开始,我们现在可以将额外的CSS类添加到InlineModelAdmin中。

包含额外CSS类的列表或元组,用于应用于为内联呈现的字段集。 默认为None。 与在字段集中配置的类一样,具有折叠类的内联将首先折叠,并且其标题将具有小的“显示”链接。

文件

链接地址: http://www.djcxy.com/p/65413.html

上一篇: How to add 'collapse' to a Django StackedInline

下一篇: Is this a proper implementation of point charge dynamics with python ODEint