Джанго: создание числа форм динамически - PullRequest
0 голосов
/ 03 декабря 2018

, поэтому я хочу создать динамическое число форм в зависимости от переменной.

Вот мой 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

Вот мой views.py, где я вызываю CTestform дляrender:

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})

Я думал, что созданные формы будут в self.fields, поэтому для печати форм на моем веб-сайте у меня есть в моем шаблоне это:

<div class="ctest">
    {%  for forms in form.fields %}
        {{ forms }}
        {%  endfor %}
    </div>

НоСайт пуст, и никакие формы не отображаются.В чем может быть проблема?

1 Ответ

0 голосов
/ 03 декабря 2018

Решено :

Проблема была в моем цикле

Пропущенный "диапазон" lol

for i in range (0, len(c_test_tokens)-1):
...