我除了这个问题相对容易,但由于我是Django的新手,我很挣扎。
我得到了一个给模板的QuerySet。基本上我想创建一个足球(足球)桌子。但总的来说我想理解这个概念。
因此,对于团队查询集中的每个团队,数据应填入5个相应的列中。目前我通过在每列中添加for循环来解决它。但是,我认为它看起来很丑陋而且效率低下。此外,我想编辑前三个循环的id。
所以我正在寻找:可以在div周围设置for循环但不在每个循环中创建div。
类似的东西:
{%for team in teams %}
<div id="position">team.position</div>
<div id="name">team.name</div>
...
{% endfor %}
除了添加以下内容:
{% if forloop.counter0 == 0|1|2 %}
add id/class to div row
{% endif %}
这里有最聪明的方法,在课堂上添加一个变量,意思是class = {{xyz}}?
模板看起来像这样。
<div class="row">
<div class="col-md-2" id="position">{% for tea in teams %}{{tea.league_position}}</br>{% endfor %}</div>
<div class="col-md-4" id="name">{% for tea in teams %}{{tea.team_name}}</br>{% endfor %}</div>
<div class="col-md-2" id="points">{% for tea in teams %}{{tea.league_points}}</br>{% endfor %}</div>
<div class="col-md-2" id="goals">{% for tea in teams %}{{tea.goals_shot}}</br>{% endfor %}</div>
<div class="col-md-2" id="received">{% for tea in teams %}{{tea.goals_received}}</br>{% endfor %}</div>
</div>
谢谢你的帮助!!!!! 西蒙
答案 0 :(得分:0)
如果您不想包含div,那么唯一可能的方法是执行ajax请求以单独填充列...
下面是未经测试的(可能是错误的),但它应该让我知道我的意思
$.get('my_get_teams_url', function(data){
for(i = 0; i < data.teams.length; i++)
{
$('#position').append(data.teams[i].position);
$('#name').append(data.teams[i].name);
}
});
答案 1 :(得分:0)
你正在用div构建一个表。改为使用表格。
<table>
<tr>
<th>Position</th>
<th>Name</th>
<th>Points</th>
<th>Shots</th>
<th>Goals against</th>
</tr>
{% for t in teams %}
<tr>
<td>{{ t.league_position }}</td>
<td>{{ t.team_name }}</td>
<td>{{ t.league_points }}</td>
<td>{{ t.goals_shot }}</td>
<td>{{ t.goals_received }}</td>
</tr>
{% endfor %}
</table>