Django链接无法在for循环中工作

Django Link not working in for loop

本文关键字:循环 工作 for 链接 Django      更新时间:2023-09-26

我试图在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>

根据MDN,TR只能包含TDTH元素的混合物。

更改您的模板以对此进行补偿。(看起来你可能有一个打字错误,意思是t.completed)

可能:

<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中似乎是错误的,因为您并不真正需要它来进行定位/样式设置。