简体   繁体   English

Django:动态创建表单数量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM