【发布时间】:2018-12-05 19:01:02
【问题描述】:
我有一个很好用的注册表单。它的一个特点是用户可以按“添加更多+”并创建更多相同的“工具”和“级别”选择字段。该模型仅保存第一个“仪器”和“级别”字段,而不是从 javascript 函数创建的其他字段。调用 javascript 函数时,如何调整模型以创建更多字段?我很感激我得到的任何帮助。
models.py
class User(AbstractBaseUser):
instrument = models.CharField(max_length=255, choices=instrument_list)
level = models.CharField(max_length=255, choices=level_list)
HTML
<div>
<div class="items">
<div id="ins">
<div>
{{ form.instrument }}
</div>
<div>
{{ form.level }}
</div>
</div>
</div>
<div id="add_more">
<button type="button" class="no_link" onclick="add_instrument()">Add more +</button>
</div>
</div>
Javascript
var i = 0;
var original = document.getElementById('ins');
function add_instrument() {
var clone = original.cloneNode(true);
clone.id = "ins" + ++i;
original.parentNode.appendChild(clone);
}
【问题讨论】:
-
仅在 DOM 中创建新字段是不够的,您需要创建可提交的表单,每个请求都在控制器中单独或迭代地使用某种表单字段计数和然后保存值。检查这个类似的帖子:stackoverflow.com/questions/5478432/…
标签: javascript python django model