Django Link没有在for循环中工作

时间:2014-10-22 00:13:39

标签: javascript html django

我试图在html表中放置一个表数据的链接。当我在Chrome的元素查看器中查看它时,我得到以下结果。

<a href="/tasks/1/"></a>
<a href="/tasks/2/"></a>
<a href="/tasks/3/"></a>
<a href="/tasks/4/"></a>
<table>
...

关于这一点的有趣之处在于,当我在视图页面源代码中查看它时,它会正确地包裹在

<input type="hidden" name="id" value="3"/>
<a href="/tasks/3/">
<td class="tableText">Make a web app</td>
</a>

我想不出有一个很好的理由为什么chrome会以两种不同的方式呈现它。在我的django模板中有什么我可能做错了吗?

  8 <h1 id="title">Joe's Basic Task List</h1>
  9 <table id="taskTable">
 10 {% for t in taskList %}
 11     <tr>
 12     {%if t.completed == 1%}
 13         <td><div class="btn active"><i class="fa fa-check"></i></div></t    d>
 14     {%else%}
 15         <td><div class="btn"><i class="fa fa-check"></i></div></td>
 16     {%endif%}
 17         <input type="hidden" name="id" value="{{t.id}}"/>
 18         <a href="{% url 'tasks:detail' t.id%}">
 19             <td class="tableText">{{t.task}}</td>
 20         </a>
 21     </tr> 
 22 {% endfor %}
 23 </table>

1 个答案:

答案 0 :(得分:1)

MDNTR只能包含TDTH元素的混合。

更改模板以补偿此问题。 (看起来你可能有拼写错误并且意味着完成了)

可能:

<h1 id="title">Joe's Basic Task List</h1>
<table id="taskTable">
{% for t in taskList %}
    <tr>
    {%if t.completed == 1%}
        <td><div class="btn active"><i class="fa fa-check"></i></div></t    d>
    {%else%}
        <td><div class="btn"><i class="fa fa-check"></i></div></td>
    {%endif%}
        <td class="tableText">
            <a href="{% url 'tasks:detail' t.id%}">{{t.task}}</a>
            <input type="hidden" name="id" value="{{t.id}}"/>
        </td>
    </tr> 
{% endfor %}
</table>

还可以考虑将div更改为span或将样式直接放在td上。两者都显示为块元素(td是一个表格单元格显示,但其行为类似于带有样式的块级元素)。

将div嵌套在td中似乎是错误的,因为你并不真正需要它用于定位/样式目的。