我想为ModelAdmin类中指定的内联指定字段集(或父div)的css类,类似于为fieldsets指定的内联。例如:
class Set2Inline(admin.TabularInline):
...
class MyModelAdmin(admin.ModelAdmin):
fieldsets = [
('Set1', {'fields': ['number', 'name', 'etc'], 'classes': ['toggle']})
]
inlines = [Set2Inline]
有没有办法以类似的方式为“内联”添加类,例如:
inlines = [
'Set2', {Set2Inline, 'classes': ['toggle']}
]
如果类附加到内联的字段集或其父div,则无关紧要。重要的是能够以与每个字段集相似的方式为每个内联指定唯一的类。有没有办法做到这一点?如果它可以在Set2Inline类中完成,也可以。
答案 0 :(得分:2)
就像彼得的评论所暗示的那样,实现这一目标的唯一方法就是基于Set2Inline
为django/contrib/admin/templates/admin/edit_inline/tabular.html
创建自定义模板:
# admin.py
class Set2Inline(admin.TabularInline):
template = 'myapp/templates/myapp/admin/tabular.html'
{# myapp/templates/myapp/admin/tabular.html #}
{% load i18n admin_static admin_modify %}
<div class="inline-group your-class" id="{{ inline_admin_formset.formset.prefix }}-group">
<div class="tabular inline-related {% if forloop.last %}last-related{% endif %}">
{{ inline_admin_formset.formset.management_form }}
<fieldset class="module your-fieldset-class">
...
另一种方法是将{j}文件添加到Media
Set2Inline
中,使用jQuery添加类:
class Set2Inline(admin.TabularInline):
class Media:
js = 'myapp/admin/addClasses.js',
// myapp/static/myapp/admin/addClasses.js
(function($) {
$('#mymodel-group').addClass('your-class');
$('#mymodel-group fieldset.module').addClass('your-fieldset-class');
})(django.jQuery);
答案 1 :(得分:0)
是的,
{{1}}
使用Django 2.1,不确定添加哪个版本。