我有以下数据:
[{
'mp': [ < MpbMealPlan: MpbMealPlan object > , < MpbMealPlan: MpbMealPlan object > ],
'user': [ < User: mpowner mpowner > ]
}, {
'mp': [ < MpbMealPlan: MpbMealPlan object > , < MpbMealPlan: MpbMealPlan object > ],
'user': [ < User: kvermaOwner Owner > ]
}]
我想在我的django模板中迭代它。如图所示,这是两个记录,每个记录中有2个键(mp和user),每个记录都属于特定的用户。所以我对它进行了研究,得到了用户的mps和用户的详细信息。但是,当我试图重复它解释在下面的答案或任何其他答案,所以我每次都得到奇怪的结果。mp可以包含更多的多条记录,但我只在第一次迭代时卡住了。我对python很陌生,这是我工作的第三天。任何指引都能救我一命。你知道吗
一旦我提出以下申请:
{% for contributor in contributors.details %}
{{ contributor }}
{% endfor %}
我得到了这个分解结构的输出:
{
'mp': [ < MpbMealPlan: MpbMealPlan object > , < MpbMealPlan: MpbMealPlan object > ],
'user': [ < User: mpowner mpowner > ]
} {
'mp': [ < MpbMealPlan: MpbMealPlan object > , < MpbMealPlan: MpbMealPlan object > ],
'user': [ < User: kvermaOwner Owner > ]
}
一个问题是:是否有可能从我的数据中得到想要的结果。我想迭代它以获得mp和user,然后我想迭代mp以获得其中的多个记录。 每当我尝试迭代到任何级别时,我都会得到所有记录,所以键“mp和user”并不能解决我的问题。你知道吗
我不想在这里浪费任何时间。 我已经更新了问题。谢谢你的回答。 更新:
以下是我使用的方法,并得到了预期的结果:
{% for contributor in contributors.details %}
{% for user in contributor.user %}
{{ user }}
<br>
{% for mp in contributor.mp %}
{{ mp.mp_name }}
<br>
{% endfor %}
{% endfor %}
{% endfor %}
结果:
user:mpowner mpowner
mp:Fresh & Healthy
mp:evening snacks
user:kvermaOwner Owner
mp:Fresh & Healthy
mp:Energizing
在C14L的帮助下,我终于得到了想要的输出(惊人的指导)。多亏了“ajabdelaziz”和其他人。你知道吗
根据你的错误,我看到的是,你试图迭代mp,它有一个字典和列表的值。由于数据类型不同,您不能只使用
.items()
。您需要使用.items()
来获取key,value中的mp值。然后,您必须处理对列表的迭代,然后是键、值。C14L的答案展示了如何在模板中实现这一点,只是不要忘记您的数据类型!你知道吗即-
item将是一个列表,然后您可以对其进行迭代以获得额外的键值对。你知道吗
另一种可能的解决方案是在模板标记过滤器中完成大部分工作。然后将过滤器应用到要过滤掉的选定变量上。你知道吗
对于Python3,调用
.items()
可以得到项目。你知道吗对于Python2,使用
iteritems()
:在Django模板中:
文件:https://docs.python.org/3/tutorial/datastructures.html#looping-techniques
编辑:
要补充答案,请查看您的特定对象
请看这部分:'mp':u'[{“fields”:{“st
那不是一个
list()
,而是一个字符串:u''
当你循环一个字符串时,你会一个接一个地得到该字符串包含的各个字符。于是出现了“奇怪”的结果。你知道吗
编辑2:
contributor.mp
和contributor.user
都包含列表例如,要打印所有用户名,您可以
要打印
mp
项的列表,您可以但是每个
mp
对象可能有许多属性。您需要查找MpbMealPlan
类定义的外观。你知道吗相关问题 更多 >
编程相关推荐