2013-08-10 5 views
0

Я делаю динамическую форму с javascript в шаблоне django. Количество входов зависит от количества точек, которые пользователь сделал на карте. Когда я пытаюсь получить входные данные в представлении, у меня их беспорядок. Когда я вижу переменные Post с отладкой, переменные упорядочиваются. Есть идеи?django pass post variables

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 ДИКТ (стандартные dicts Python не имеют порядок), как это:

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