2012-07-03 4 views
1

내 코드를 실행하기 전에 배열의 요소 수를 알고있을 때만 actuals_data 인 배열의 요소로 내 formset을 채울 수 있습니다. 이 코드는 12, 배열에서 배열의 요소 수를 알지 못하는 경우 배열에서 formset을 채우는 방법은 변수에 들어있는 코드를 실행하기 전에 수행해야합니다.동적 데이터 항목 번호를 사용하여 formset을 초기화하는 방법

내보기를 반복하고 항목의 주어진 수의 목록을 만들 수 있습니다

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

답변

2

입니다.

샘플 코드 :

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) 
+0

목록을 반복하는 카운터를 사용하는 사람들에게하지 마십시오. 목록 자체를 통해 반복해야하며, 'for i in actual_data ...', 실제로는 목록 이해에서 수행 할 수 있습니다. –

+0

@DanielRoseman 매우 사실입니다. 그 대답을 업데이트했습니다. – Rohan

+0

@Rohan 감사합니다. !!! 너희 둘 다 내 하루를 구했다! – nimeshkiranverma

관련 문제