Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向django inlines字段集添加css类_Django - Fatal编程技术网

向django inlines字段集添加css类

向django inlines字段集添加css类,django,Django,我想为ModelAdmin类中指定的内联线为字段集(或父div)指定一个css类,类似于为字段集指定的内容。例如: class Set2Inline(admin.TabularInline): ... class MyModelAdmin(admin.ModelAdmin): fieldsets = [ ('Set1', {'fields': ['number', 'name', 'etc'], 'classes': ['toggle']})

我想为ModelAdmin类中指定的内联线为字段集(或父div)指定一个css类,类似于为字段集指定的内容。例如:

class Set2Inline(admin.TabularInline):
    ...

class MyModelAdmin(admin.ModelAdmin):
    fieldsets = [
                ('Set1', {'fields': ['number', 'name', 'etc'], 'classes': ['toggle']})
                ]
    inlines = [Set2Inline]
是否有类似于“内联线”的方式添加类的方法,例如:

inlines = [
              'Set2', {Set2Inline, 'classes': ['toggle']}
          ]

类是否附加到内联div的字段集或其父div并不重要。重要的是能够以类似于为每个字段集指定的方式为每个内联指定唯一的类。有办法做到这一点吗?如果可以在Set2Inline类中完成,那么也可以

正如Peter的评论所建议的,实现这一点的唯一方法是基于
django/contrib/admin/templates/admin/edit_inline/tabular.html
Set2Inline
创建自定义模板:

# 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">
...
是的,你可以

class Set2Inline(admin.TabularInline):  # extending any admin Inline Class will work AFAIK
    ...
    classes = ['collapse',]
    ...

在Django 2.1中工作,不确定添加了哪个版本。

我认为您必须根据内置的
Django/contrib/admin/templates/admin/edit_inline/tabular.html
,定义自己的模板,然后在
Set2Inline
上设置
template
属性,或者定义
InlineModelAdmin
的新子类-我在标准模板中看不到任何允许这样做的内容。我对扩展相对较短的注释投了赞成票。我希望jQuery版本不是必需的,因为如果您可以在jQuery中编写正确的选择器,那么您也可以在CSS中编写它们,而不是依赖于类名,但这取决于具体情况。
class Set2Inline(admin.TabularInline):  # extending any admin Inline Class will work AFAIK
    ...
    classes = ['collapse',]
    ...