我有一个带有两个ManyToManyFields的QuerySet,我们称之为game.players_a和game.players_b。一个字段中的值的数量几乎与其他字段中的值不同,但通常为1-50。我想在模板表中显示它们的值,如下所示:
game.html
<% for a, b in (game.players_a + game.players_b) %>
<tr>
<td>a.image</td>
<td>a.name</td>
<td>b.image</td>
<td>b.name</td>
</tr>
<% endfor %>
有没有办法将两个ManyToManyFields的值连接成game.players,看起来有点像[(玩家对象,玩家对象),(玩家对象,玩家对象),(无,玩家对象)]或是否有更简单的方法将这些值输入表格列?
答案 0 :(得分:1)
您可以使用itertools
中的izip_longest()
功能:
from itertools import izip_longest
players = izip_longest(game.players_a.all(), game.players_b.all())
return render(request, 'template.html', {'game': game, 'players': players})