我有2张桌子。一个所有者可以没有或多个项目。
Item
id name owner_id (fk)
1 alpha 1
2 beta 1
Owner
id name attrc
1 owner1 complex_attr1
2 owner2 complex_attr2
我从数据库中分别检索它们作为列表:
for item in item_list:
for owner in owner_list:
if item.owner_id == owner.id:
# I modify owner attributes
owner.attrc = modify_funct(attrc)
item.owner = owner
我名单Items中的HTML,并为每个Item我展示的一些属性Owner的Item。在循环中,我创建Owner了Item对象的a 属性;事情是在 html 中显示我需要修改一些Owner原始数据库属性
所以在 html 模板创建中,我会有类似的东西:
for item in item_list:
<div>
item.name
<span> item.owner.name<span>
<span> item.owner.attrc<span>
</div>
因为Owner with id 1拥有两者Item with id 1 and 2,在循环中的第一次迭代中,attrc被修改,在循环中的第二次迭代中,'attrc' 已经被修改,并且该函数没有找到预期的内容。
解决方案是使用另一个循环循环/更改外部的“attrc”,然后循环 item_list 和 owner_list,以减少循环次数?
元芳怎么了
跃然一笑
相关分类