как инициализировать набор форм с динамическим количеством записей данных

Я могу заполнить свой набор форм элементами массива, который является actuals_data, только когда я знаю количество элементов в массиве до запуска моего кода, что составляет 12 для этого кода, но как заполнить набор форм из массива, когда я не знаю количество элементов в массиве до запуска моего кода, который входит в переменную count.

моя точка зрения

def show_actuals(request):

Account_Number_in = request.session['account_number']
Year_in = request.session['year']
count = request.session['count']
actuals_data = request.session['actuals_to_show']
months = request.session['months']
show_actuals_formset = formset_factory(FetchActualsBox, extra=0)

formset = show_actuals_formset(initial=[{'Value': actuals_data[0]},
                    {'Value': actuals_data[1]},
                    {'Value': actuals_data[2]},
                    {'Value': actuals_data[3]},
                    {'Value': actuals_data[4]},
                    {'Value': actuals_data[5]},
                    {'Value': actuals_data[6]},
                    {'Value': actuals_data[7]},
                    {'Value': actuals_data[8]},
                    {'Value': actuals_data[9]},
                    {'Value': actuals_data[10]},
                    {'Value': actuals_data[11]},
                    ])



return render_to_response('ShowActualsData.html', {'formset' : formset , 'count' : count, 'actuals_data' : actuals_data , 'months' : months , 'Account_Number' : Account_Number_in , 'Year' : Year_in })

person nimeshkiranverma    schedule 03.07.2012    source источник


Ответы (1)


Вы можете повторять и создавать список с заданным количеством элементов.

Образец кода:

def show_actuals(request):

    Account_Number_in = request.session['account_number']
    Year_in = request.session['year']
    count = request.session['count']
    actuals_data = request.session['actuals_to_show']
    months = request.session['months']
    show_actuals_formset = formset_factory(FetchActualsBox, extra=0)
    initial_list = []
    for data in actuals_data:
       initial_list.append({'value': data})
    formset = show_actuals_formset(initial=initial_list)
person Rohan    schedule 03.07.2012
comment
Пожалуйста, не говорите людям использовать счетчик для перебора списка. Вы должны перебирать сам список: for i in actual_data..., и на самом деле это можно сделать в понимании списка. - person Daniel Roseman; 03.07.2012