[英]Django: creating number of forms dynamically
so I want to create a dynamic number of forms depending on a variable. 所以我想根据变量创建动态数量的表单。
Here is my forms.py 这是我的forms.py
class CTestform(forms.Form):
def __init__(self, c_test_tokens, *args, **kwargs):
super(CTestform, self).__init__(*args, **kwargs)
wordsbeforegap = ''
iteratorforgaps = 0
for i in (0, len(c_test_tokens)-1):
if '#GAP#' not in c_test_tokens[i]:
wordsbeforegap = wordsbeforegap + c_test_tokens[i]
else:
self.fields[iteratorforgaps] = forms.CharField(widget=forms.TextInput(attrs={'size': '5'}),
required=False, label=wordsbeforegap, label_suffix='')
wordsbeforegap = ''
iteratorforgaps += 1
Here is my views.py where I call CTestform to render: 这是我的views.py,我在其中调用CTestform进行渲染:
def ctest(request):
# this function is not really important for the question
# c_test_tokens = list of chars
c_test_tokens, gaps, tokenindexe = generate_c_test(exampletext())
form = CTestform(c_test_tokens=c_test_tokens)
return render(request, 'ctest.html', {'form': form})
I thought that the forms created would be in self.fields, so to print the forms at my website I have in my template this: 我认为创建的表单将位于self.fields中,因此要在我的网站上打印表单,我的模板中应包含以下内容:
<div class="ctest">
{% for forms in form.fields %}
{{ forms }}
{% endfor %}
</div>
But the site is empty and no forms are getting rendered. 但是该站点是空的,没有表单被呈现。 What could be the problem?
可能是什么问题呢?
Solved : 解决 :
Problem was in my for loop 问题出在我的for循环中
Missed "range" lol 错过了“范围”大声笑
for i in range (0, len(c_test_tokens)-1):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.