2015-11-10 2 views
0

Я пытаюсь представить сценарий django в шаблоне на django. Простой скрипт запуска на массив и печать настроек для каждого значения в массиве с помощью JSON запросов Query:вернуть все значения из цикла for в шаблон на django

for x in range(numRPAs): 
    # Get the item number 
    print ("item: ", parsResults['innerSet'][0]['rpasState'][x]['rpaUID']['rpaNumber']) 
    # Get the item status 
    print ("Status: ", parsResults['innerSet'][0]['rpasState'][x]['status']) 
    # Get the item versions 
    print ("Version: ", parsResults['innerSet'][0]['rpasState'][x]['version']['version']) 

Это хорошо работает в оболочке Python. Я пытаюсь использовать Django, поэтому я написал следующий вид: часть

def monitor(request): 
    for x in range(item): 
    # Get the item number 
    itemNumber = (parsResults['innerSet'][0]['rpasState'][x]['rpaUID']['rpaNumber']) 
    # Get the item status 
    itemStatus = (parsResults['innerSet'][0]['rpasState'][x]['status']) 
    # Get the RPA versions 
    itemVersion = (parsResults['innerSet'][0]['rpasState'][x]['version']['version']) 
return render(request, 'monitorLabs.html', {'itemNumber' : itemNumber, 'itemStatus' : itemStatus, 'itemVersion' : itemVersion, }) 

Как должен мой файл шаблона выглядеть для того, чтобы работать на любых х и печать каждый запрос? «return» явно работает только один раз (даже если он находится внутри цикла for).

Так следующее печать только первый пункт:

<body> 
<h1>Tile goes here</h1> 
    <p>item number: {{ itemNumber }}</p> 
    <p>item status: {{ itemStatus}}</p> 
    <p>item version: {{ itemVersion}}</p> 

Я был в состоянии создать массив для каждого свойства, а затем использовать простой цикл, например:

{% for x in rpaNumber %} 
     <p>RPA number: {{ x }}</p> 
    {% endfor %} 

Но я не хочу этого делать, поскольку после этого потребовалось много заказов.

Есть ли другой способ выполнить эту задачу? Заранее спасибо, Yakir.

+0

Ну, должно быть ясно, что вам нужно собрать все значения 'itemNumber',' itemStatus' и 'itemVersion' в какой-либо структуре данных, будь то список или dict, и отправить их в шаблон , Ваше возражение против его включения в список не очень понятно. –

ответ

0

вид

def monitor(request): 
    items = [] 
    for x in range(item): 
    items_dict = { 
    'itemNumber': parsResults['innerSet'][0]['rpasState'][x]['rpaUID']['rpaNumber'], 
    'itemStatus': parsResults['innerSet'][0]['rpasState'][x]['status'], 
    'itemVersion': parsResults['innerSet'][0]['rpasState'][x]['version']['version'] 
    } 
    items.append(items_dict) 
return render(request, 'monitorLabs.html', {'items' : items}) 

шаблон

<body> 
<h1>Tile goes here</h1> 
    {% for item in items %} 
     <p>item number: {{ item.itemNumber }}</p> 
     <p>item status: {{ item.itemStatus}}</p> 
     <p>item version: {{ item.itemVersion}}</p> 
    {% endfor %} 

Я надеюсь, что это поможет вам.

+0

Как шарм! Большое спасибо, чистый и элегантный. –

Смежные вопросы