据我所知,Django 没有内置的方法来执行此操作,但我可以想到几种方法可以一次性完成某些操作,而不必手动修改大量字段集。
一种方法是使用 JavaScript 重写页面标记。也许 javascript 可以有一个字段名称列表,每当它找到其中之一时,它就会隐藏该字段及其标签,并向页面添加一个按钮来切换这些不可见的字段。
另一种方法只涉及Python。通常,您只需在管理中将 fieldsets 属性指定为元组即可。但是您可以将其指定为导入函数,该函数将常用元组作为参数。在您的设置文件中,您可以指定要隐藏的字段名称列表。然后,您需要编写一个返回修改后的元组的函数,将与您的字段名之一匹配的任何字段与折叠类一起移动到新的字段集中。
例如,在您的管理类中,您可以执行类似的操作(您需要编写并导入 hide_fields)。
fieldsets = hide_fields(
(None,
{'fields':('title', 'content')}
)
)
假设设置文件中的内容是您想要隐藏的内容,这可能最终会被解释为以下内容:
fieldsets = (
(None,
{'fields':('title',)}
),
('Extra',
{
'fields': ('content',),
'classes':('collapse',),
}
),
)