我为inlineFormset做一个自定义UI/UX。
默认情况下,InlineFormset小部件具有删除按钮。
i WAN使用JavaScript从InlineFormset Dynamic中添加和删除表单。在某些情况下,删除只是一个按钮,而不是复选框,在其他情况下是在模式窗口中。
用户单击使用JavaScript从页面中删除表单。
所以,我尝试在不使用默认小部件的情况下执行此操作,在模板中渲染字段,但是我不知道如何告诉Django Witch Fields删除,并且是否有必要检查字段的IDS和名称。
我对此问题的解决方案只是覆盖CheckboxInput widget类的template_name:
widgets.CheckboxInput.template_name = 'widgets/delete.html'
我在{app}/widgets.py中添加了托管我的自定义小部件的。当我使用相同格式的应用程序时,我认为这是唯一的方法。
{app}/templates/widgets/delete.html:
<div class="checkbox checkbox-styled">
<label>
<input name={{ widget.name }} type="checkbox" value="true" {% if widget.attrs.checked == True %}checked{% endif %}>
<span>Delete</span>
</label>
</div>
如果它不会是 inlineFormSet_factory ,那么最好的方法是创建一个新类扩展baseformset并覆盖 add_fields 答案中建议的方法。