Django - сравнение значений ключей в словарях в двух разных списках
У меня есть два списка словарей, которые я извлек из XML файла с помощью elementtree. Каждый список словарей содержит десятки ключей/значений, но для простоты предположим, что они похожи на следующие:
list1 = [{'id': '100', 'first_name': 'john'}, {'id': '101', 'first_name': 'joe'}]
list2 = [{'id': '100', 'last_name': 'doe'}, {'id': '101', 'last_name': 'bloggs'}]
Я использую Django для создания таблицы с данными и хочу поместить имена (из списка1) и фамилии (из списка2) в одну строку таблицы, где есть совпадение в значениях 'id', но я не могу понять, как это сделать.
Если бы я хотел перечислить их на языке python, я бы использовал:
for v in list1:
print(v['id'])
print(v['first_name'])
for i in list2:
if i['id'] == v['id']:
print(i['last_name'])
Но я не могу понять, как написать это с помощью тегов django в шаблоне HTML. Вот что я пробовал (и их вариации):
{% for v in list1 %}
<tr>
<td>{{v.id}}</td>
<td>{{v.first_name}}</td>
{% for i in list2 %}
{% if {{v.id}} == {{i.id}} %}
<td>{{i.last_name}}</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
Вы используете {{}}
внутри {%%}
Движок шаблонов Django действительно не любит этого.
Запишите его следующим образом:
{% for i in list2 %}
{% if v.id == i.id %}
<td>{{i.last_name}}</td>
{% endif %}
{% endfor %}
Сиденотат:
Вы сравниваете идентификаторы. Является ли это связанным объектом? Это одна и та же модель?