将所有值从for循环返回到django上的模板

时间:2015-11-10 13:13:05

标签: python django django-templates

我正在尝试在django上的模板中显示django脚本。简单的脚本在数组上运行,并使用json query:

打印数组中每个值的设置
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 shell中运行良好。我正在尝试使用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, })

我的模板文件应如何在每个x上运行并打印每个查询? “返回”显然只运行一次(即使它在for循环中)。

所以下面只打印第一项:

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

我能够为每个属性创建一个数组,然后使用一个简单的for循环,例如:

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

但我不会避免这样做,因为在此之后需要做很多命令。

还有其他方法可以执行此任务吗? 提前致谢, 亚基尔。

1 个答案:

答案 0 :(得分: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 %}

我希望这会对你有所帮助。