【发布时间】:2020-03-18 22:57:37
【问题描述】:
我正在尝试创建一个允许某人输入多个电话号码的表单。我想让点击一个按钮向表单添加一个额外的字段成为可能,但我不太确定该怎么做。
我查看了FormSets,但我不想每次有人添加新电话号码时都创建一个新模型实例。
提前致谢
【问题讨论】:
标签: python django django-forms modelform formset
我正在尝试创建一个允许某人输入多个电话号码的表单。我想让点击一个按钮向表单添加一个额外的字段成为可能,但我不太确定该怎么做。
我查看了FormSets,但我不想每次有人添加新电话号码时都创建一个新模型实例。
提前致谢
【问题讨论】:
标签: python django django-forms modelform formset
一种方法是,您可以考虑使用ArrayField 或JSONField 作为电话号码。如果您希望始终能够轻松引用数字,后者可能更有用,例如
{'primary_no': '+123232323'}
然后对于前端,您可以使用带有 Javascript 的按钮来“克隆”input 元素(或者更好地创建一个具有相同类名的新元素)并将其附加到click 上的电话号码包装器 div 中。但是您需要注意使用与 checkbox 元素相同的字段名称,例如
<input type="text" name="phone_number[]" />
这将使这些字段的值在request.POST.getlist('phone_number[]') 的数组中发送,然后您可以循环并验证。我在这里省略了细节,但这应该会给你一个想法。
【讨论】: