Django - проблема с HTML-таблицами (возможно, с циклом for)
Я хочу использовать dataTables в моем HTML шаблоне в Django. Файл .html:
<!DOCTYPE html>
<html lang="en">
<head>
<title>FPL projections - Team list</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.12/css/jquery.dataTables.css">
<script type="text/javascript" src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<style>
section{
width: 70%;
margin: 30px auto;
}
#teamTable th, #teamTable td{
border: 1px solid #ccc;
text-align: left;
}
#teamTable thead {
background: #f2f2f2;
}
</style>
</head>
<body>
<section>
{% extends "fantasy_menu.html" %}
{% block content %}
<h1>Team List</h1>
<table id="teamTable" width="100%">
<thead>
<tr>
<th><strong>Name</strong></th>
<th>Home for</th>
<th>Home ag</th>
<th>Away for</th>
<th>Away ag</th>
<th>opp1</th>
<th>opp2</th>
<th>opp3</th>
<th>opp4</th>
<th>opp5</th>
</tr>
</thead>
<tbody>
{% for team in team_list %}
<tr>
<td><a href="{% url 'fantasy:team' team.ref_id %}"><strong>{{team.name}}</strong></a>
({{team.ref_id}})
</td>
<td>{{team.avg_goal_for_home}}</td>
<td>{{team.avg_goal_ag_home}}</td>
<td>{{team.avg_goal_for_away}}</td>
<td>{{team.avg_goal_ag_away}}</td>
<td>{{team.opp1}}</td>
<td>{{team.opp2}}</td>
<td>{{team.opp3}}</td>
<td>{{team.opp4}}</td>
<td>{{team.opp5}}</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
$(document).ready( function () {
$('#teamTable').DataTable();
} );
</script>
<br />
<br />
<p><a href="{% url 'fantasy:player_list' %}">Player projections</a></p>
<p><a href="{% url 'fantasy:index' %}">Back to main page</a></p>
{% endblock %}
{% block footer %}
{% endblock %}
</section>
</body>
</html>
JavaScript (который бы влиял на заголовки таблицы), похоже, не запускается, потому что заголовки не кликабельны (например, для сортировки). Текущая веб-ссылка того, что отображается (до того, как это будет исправлено...): http://texouze.pythonanywhere.com/fantasy/teams/
Когда я запускаю проверку синтаксиса (с помощью TextMate), она выдает следующую ошибку (за которой следует фатальная ошибка в том же месте):
Error: Misplaced non-space characters inside a table.
From line 49, column 16; to line 51, column 7
<tbody>↩ {% for team in team_list %}↩ <tr>↩
Прошу простить мое невежество, если я использую неправильную терминологию, я очень новичок в этом деле.
<<<Тег
Вернуться на верх
{% extends %}
должен быть первой строкой в файле шаблона.
перепишите так
{% extends "fantasy_menu.html" %}
{% block content %}
<!DOCTYPE html>
<html lang="en">
<head>
<title>FPL Projections - Team List</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.12/css/jquery.dataTables.css">
<script type="text/javascript" src="//cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<style>
section {
width: 70%;
margin: 30px auto;
}
#teamTable th, #teamTable td {
border: 1px solid #ccc;
text-align: left;
}
#teamTable thead {
background: #f2f2f2;
}
</style>
</head>
<body>
<section>
<h1>Team List</h1>
<table id="teamTable" width="100%">
<thead>
<tr>
<th><strong>Name</strong></th>
<th>Home for</th>
<th>Home ag</th>
<th>Away for</th>
<th>Away ag</th>
<th>opp1</th>
<th>opp2</th>
<th>opp3</th>
<th>opp4</th>
<th>opp5</th>
</tr>
</thead>
<tbody>
{% for team in team_list %}
<tr>
<td>
<a href="{% url 'fantasy:team' team.ref_id %}">
<strong>{{ team.name }}</strong>
</a> ({{ team.ref_id }})
</td>
<td>{{ team.avg_goal_for_home }}</td>
<td>{{ team.avg_goal_ag_home }}</td>
<td>{{ team.avg_goal_for_away }}</td>
<td>{{ team.avg_goal_ag_away }}</td>
<td>{{ team.opp1 }}</td>
<td>{{ team.opp2 }}</td>
<td>{{ team.opp3 }}</td>
<td>{{ team.opp4 }}</td>
<td>{{ team.opp5 }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<script>
$(document).ready(function () {
$('#teamTable').DataTable();
});
</script>
<p><a href="{% url 'fantasy:player_list' %}">Player projections</a></p>
<p><a href="{% url 'fantasy:index' %}">Back to main page</a></p>
</section>
</body>
</html>
{% endblock %}