我正在尝试使用一个函数来比较表单的标题和数据中的键。如果键不相似,此函数会添加一个空字段。
它在我的 views.py 中运行良好:
#Entries define all the datas taken from the fobi forms.
headers = json.loads(entries{0}.saved_data)
headers = headers.items()
for key, value in headers:
for data in entries:
data = json.loads(data.saved_data)
formatted[value] = data.get(key, '')
print(entries)
formatted = formatted.items()
然后我将格式化传递到上下文中,并在我的模板中执行了以下操作:
<tr>
{% for key, valeur in headers %}
<th>
{{ key }}
</th>
{% endfor %}
</tr>
</thead>
<tbody>
<tr>
{% for key, valor in headers %}
{% for cle, valeur in formatted %}
{%if cle == valor%}
<td> {{valeur}}</td>
{% endif %}
{% endfor %}
{% endfor %}
</tr>
</tbody>
结果是完美的,例如每个标题都与数据对齐。如果缺少一些数据,例如图片,则此列中有一个空的sace。
我只通过循环打印了一个表单(最后一个从格式化的字典中保存)。我想打印我所有的表格。但是在views.py 中似乎是不可能的。
我如何将其管理到模板中?
谢谢您的回答 !
BR,卡罗。
我找到了解决方案。
我创建了一个字典列表:
formattedList = []
然后,我更改我的初始循环以获取列表中的每个字典:
for entry in entries:
formatted = {}
for key, value in headers:
data = json.loads(entry.saved_data)
formatted[value] = data.get(key, '')
formatted = formatted.items()
**formattedList.append(formatted)**
最后,我在模板文件中更改了这些行:
<tbody>
**{%for element in formattedList%}**
<tr>
{% for key, valor in headers %}
**{% for cle, valeur in element %}**
{%if cle == valor%}
<td> {{valeur}}</td>
{% endif %}
{% endfor %}
{% endfor %}
</tr>
{% endfor %}
</tbody>
一切正常!
我得到了所有的结果!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句