【问题标题】:Django dynamically add fields without creating new model instancesDjango 动态添加字段而不创建新的模型实例
【发布时间】:2020-03-18 22:57:37
【问题描述】:

我正在尝试创建一个允许某人输入多个电话号码的表单。我想让点击一个按钮向表单添加一个额外的字段成为可能,但我不太确定该怎么做。

我查看了FormSets,但我不想每次有人添加新电话号码时都创建一个新模型实例。

提前致谢

【问题讨论】:

    标签: python django django-forms modelform formset


    【解决方案1】:

    一种方法是,您可以考虑使用ArrayFieldJSONField 作为电话号码。如果您希望始终能够轻松引用数字,后者可能更有用,例如

    {'primary_no': '+123232323'}
    

    然后对于前端,您可以使用带有 Javascript 的按钮来“克隆”input 元素(或者更好地创建一个具有相同类名的新元素)并将其附加到click 上的电话号码包装器 div 中。但是您需要注意使用与 checkbox 元素相同的字段名称,例如

    <input type="text" name="phone_number[]" />
    

    这将使这些字段的值在request.POST.getlist('phone_number[]') 的数组中发送,然后您可以循环并验证。我在这里省略了细节,但这应该会给你一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2019-03-02
      • 2012-06-05
      • 1970-01-01
      • 2013-02-11
      • 2011-04-12
      • 1970-01-01
      相关资源
      最近更新 更多