将一个QuerySet的两个ManyToManyFields送入HTML表格列

时间:2015-04-18 12:54:08

标签: django

我有一个带有两个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,看起来有点像[(玩家对象,玩家对象),(玩家对象,玩家对象),(无,玩家对象)]或是否有更简单的方法将这些值输入表格列?

1 个答案:

答案 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})