Как многие выше предположили, хороший путь состоит в том, чтобы протестировать их через Ваши открытые интерфейсы.
, Если Вы делаете это, это - хорошая идея использовать инструмент покрытия кода (как Emma), чтобы видеть, выполняются ли Ваши закрытые методы на самом деле от Ваших тестов.
Вы можете создать повторяющиеся поля в методе __ 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)