Django - Повторение поля n формы времена в одной форме

Как многие выше предположили, хороший путь состоит в том, чтобы протестировать их через Ваши открытые интерфейсы.

, Если Вы делаете это, это - хорошая идея использовать инструмент покрытия кода (как Emma), чтобы видеть, выполняются ли Ваши закрытые методы на самом деле от Ваших тестов.

5
задан Frozenskys 30 July 2009 в 10:09
поделиться

2 ответа

Вы можете создать повторяющиеся поля в методе __ init __ вашей формы:

class PaymentsForm(forms.Form):
    invoice = forms.CharField(widget=forms.HiddenInput())
    total = forms.CharField(widget=forms.HiddenInput())

    def __init__(self, *args, **kwargs):
        super(PaymentsForm, self).__init__(*args, **kwargs)
        for i in xrange(10):
            self.fields['item_name_%d' % i] = forms.CharField(widget=forms.HiddenInput())

Подробнее о динамические формы можно найти, например, здесь

edit: чтобы ответить на вопрос в вашем комментарии: просто укажите количество повторений в качестве аргумента метода __ init __ , примерно так:

    def __init__(self, repetitions, *args, **kwargs):
        super(PaymentsForm, self).__init__(*args, **kwargs)
        for i in xrange(repetitions):
            self.fields['item_name_%d' % i] = forms.CharField(widget=forms.HiddenInput())

а затем в вашем представлении (или где бы вы ни создавали форму):

payments_form = PaymentsForm(10)
8
ответ дан 13 December 2019 в 05:39
поделиться

Используйте наборы форм .

4
ответ дан 13 December 2019 в 05:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: