【问题标题】:Django - Modify Inlineformset Delete buttonDjango - 修改 Inlineformset 删除按钮
【发布时间】:2018-03-12 00:46:31
【问题描述】:

我为内联表单集定制 UI/UX。

默认情况下,inlineformset 小部件有一个删除按钮。

我想使用 javascript 从 inlineformset 动态中添加和删除表单。 在某些情况下删除只是一个按钮而不是复选框,在其他情况下是在模式窗口中。

当用户单击删除时,表单会使用 javascript 从页面中删除。

所以,我尝试在不使用默认小部件的情况下执行此操作,在模板中呈现字段,但我不知道如何告诉 Django 女巫字段删除以及是否有必要重新调整字段的 ID 和名称。

【问题讨论】:

    标签: django django-forms inline-formset


    【解决方案1】:

    我对这个问题的解决方案是覆盖 CheckboxInput 小部件类的 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中的小部件> 类似this answer 中建议的方法。

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 2020-12-05
      • 2011-03-29
      • 2016-03-02
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多