我一直在研究这个问题几天没有运气。希望有人可以提供帮助。
假设我们有以下型号:
User model (django.contrib.auth.models)
class Children(models.Model):
name = models.CharField(max_length=200, blank=False)
user = models.ForeignKey(User, on_delete=models.CASCADE)
目标:当新用户想要创建帐户时,他们会填写用户表单,并能够将x个孩子的数量添加到他们的帐户中。本质上,模板将具有用户表单,并且x个子表单形式(取决于用户具有多少个孩子)全部捆绑在相同的<形式>标签
我在创建视图时使用了此参考:https://collingrady.wordpress.com/2008/02/18/editing-multiple-objects-in-django-with-newforms/
视图看起来应该有效。我的问题在于模板。诀窍是我不确定每个新用户会有多少个孩子,所以我不能硬编码儿童表格。有谁知道模板想要查找此问题或我如何实现目标?
答案 0 :(得分:0)
我知道现在回答这个问题有点晚了,但是我发现这个问题没有答案,我认为我可以做出贡献 对此可以有多种解决方案。 我可以提到一个我相信会满足您需求的东西。
<!--This is the form for parents and Javascript inserts Dynamic Fields -->
<form id="parent_form" method="POST" action="{% url 'url_name' %}">
<input type="text" name="parent_name">
<input id="child_count" onchange="inject_child_details()"
type="number" name="number_of_children" min=0>
<div id="child_details">
enter code here
</div>
</form>
<script type="text/javascript" nonce="{{script_nonce}}">
function inject_child_details() {
var x = document.getElementById("child_count").value;
details_div = document.getElementById("child_details");
details_div.innerHTML = ''
for(var index = 1;index <= x;){
details_div.insertAdjacentHTML('beforeend','<input type="text" name="child'+index+'name" placeholder="Name of Child '+index+'">');
index = index +1;
}
}
</script>
要插入的HTML应该在一行中,或者应该用
截断 '+
下一行应以上述倒排开头
+'