我已经将视图中的数据提供给了django中的模板。我想迭代这些多个键来构建一个html表。
views.py
data={'pacientes':p,'inicios':i,'finales':f,'enfermedad':enf} # p, i and f are lists
return render(request,'verEnf.html',data)
我想做点什么
的index.html
<table>
{% for p, i, f in pacientes, inicios, finales %} # I know that this code is not work
<tr>
<td>{{ p.nombre }}</td>
<td>{{ i }}</td>
<td>{{ f }}</td>
<tr>
{% endfor %}
</table>
p是来自Pacientes的对象
class Usuario(models.Model):
dni=models.CharField(max_length=9,primary_key=True)
clave=models.CharField(max_length=16)
nombre=models.CharField(max_length=30)
...
和我是
的字符串列表('20-2-2014', '12-2-2014', ..., '11-5-2014')
答案 0 :(得分:2)
我认为paciente,inicio和finales的每个索引都是相关的。
正如Ignacio所说,您可以在视图中编写一些代码,然后再将其传递给模板以解决您的问题。 一个可能的解决方案是将值打包在一个元组列表中,如下所示:
[
(pacientes[0], inicios[0], finales[0]),
(pacientes[1], inicios[1], finales[1]),
...
]
您可以使用视图中的zip
功能轻松实现此目的:
pacientes_data = zip(p, i, f)
data={'pacientes_data':pacientes_data,'enfermedad':enf} # p, i and f are lists
return render(request,'verEnf.html',data)
在你的模板中:
<table>
{% for p,i,f in pacientes_data %}
<tr>
<td>{{ p.nombre }}</td>
<td>{{ i }}</td>
<td>{{ f }}</td>
</tr>
{% endfor %}
</table>