2013-08-10 3 views
0

저는 장고 템플릿에서 javascript로 동적 양식을 만들고 있습니다. 입력의 수는 사용자가지도에서 작성한 점수의 수에 따라 다릅니다. 보기에서 입력을 얻으려고 할 때, 나는 그들을 무질서하게 만들었습니다. 디버그로 Post 변수를 볼 때 변수가 정렬됩니다. 어떤 생각?django가 게시물 변수를 전달합니다.

template.html

function getCoordinates(){       
     var i = 0  
     form = document.getElementById('frm');   
     for (var i=0; i<points_l.length; i++){ 

      inp=document.createElement('input'); 
      inp.type='hidden'; 
      inp.value=coord_l[i].lon+","+coord_l[i].lat;//setAttribute('value',coord_l[i]); 
      inp.id='inp_'+i; 
      inp.name = 'inp_'+i; 
      form.appendChild(inp);        
     } 

     form.submit();   
    } 

views.py

for k, v in request.POST.iteritems(): 

    if k.startswith('inp'): 
     elems = v.split(',') 
     lon = ''.join(elems[-1:]) 
     lat = ''.join(elems[:-1]) 
     coordinates_l.append(lat) 
     coordinates_l.append(lon) 

내가 루프 나는이 순서대로 입력 얻을으로, 5 개 입력이있는 경우 : inp_3, inp_4, inp_5, inp_1을, inp_2. 순서대로 입력이 필요합니다!

감사합니다.

답변

1

나는 순서가 무엇인지 모르지만이 같은 request.POST DICT (표준 파이썬 dicts이없는 순서를) 정렬 할 수 있습니다

for k, v in sorted(request.POST.iteritems()): 
    if k.startswith('inp'): 
     elems = v.split(',') 
     lon = ''.join(elems[-1:]) 
     lat = ''.join(elems[:-1]) 
     coordinates_l.append(lat) 
     coordinates_l.append(lon) 

그것이 도움이되기를 바랍니다.

+0

Yess !! 이제 완벽하게 작동합니다. 그들은 좌표이므로 순서대로 입력이 필요하며 inp0-inp1, inp1-inp2 ... 사이의 경로를 계산해야합니다. – user2170928

관련 문제