2010-10-21 94 views
2

问题是什么?它说我无效的块标签:'endfor'。Django标记错误。无效的块标记:'endfor'

{%else%} 

<ol id="sortable" name="plst{{first_list.pk}}"> 
{% for item in playlist %} 
<li id="item{{item.pk}}" media="{{item.media.pk}}" class="holderPlace" title="{{item.media.name}}"><span> {{item.media.name|custom_slice:30}} </span> 

      {%ifequal item.media.watch_status 0 %} 
       <img src="{{MEDIA_URL}}images/content_started_watch_12x12.gif" title="ddd" alt="" height="12" width="12" style="position:relative;top:2px;"/> 
      {%else%} 
       {%ifequal item.media.watch_status 1 %} 
       <img src="{{MEDIA_URL}}images/content_watched_12x12.gif" title="Вы уже смотрели эту передачу" alt="" height="12" width="12" style="position:relative;top:2px;"/> 
      {%endifequal%} 


<div class="buttons"> <a href="javascript:void(0);" class="myButtonPlay" title="Начать просмотр"><img class="button_play" src="{{MEDIA_URL}}images/playlist/btn_play.gif" width="80" height="28" /></a><span>{{item.media.duration}} мин.</span> <a href="javascript:void(0);" class="deleteButton" title="Удалить из плейлиста"><img src="{{MEDIA_URL}}images/playlist/btn_delete.gif" width="29" height="22" /></a> <a href="javascript:void(0);" class="myButtonDown" title="Переместить вниз"><img src="{{MEDIA_URL}}images/playlist/btn_down.gif" width="29" height="22" /></a> <a href="javascript:void(0);" class="myButtonUp" title="Переместить вверх"><img src="{{MEDIA_URL}}images/playlist/btn_up.gif" width="29" height="22" /></a></div> 
</li> 
{% endfor %} 
</ol> 
{%endif%} 

回答

4

检查那些ifequal标签。

{%ifequal item.media.watch_status 0 %} 
    <img src="{{MEDIA_URL}}images/content_started_watch_12x12.gif" title="ddd" alt="" height="12" width="12" style="position:relative;top:2px;"/> 
{%else%} 
    {%ifequal item.media.watch_status 1 %} 
     <img src="{{MEDIA_URL}}images/content_watched_12x12.gif" title="Вы уже смотрели эту передачу" alt="" height="12" width="12" style="position:relative;top:2px;"/> 
    {%endifequal%} 
{%endifequal%} 

我想这就是你想要做的,但不知道。

说明: 当Django解析for标签,它只是看起来名为endfor标签 - 它实际上不是一个真正的标签(如果让任何意义)。一旦遇到ifequal标记,它将接管解析,直到它遇到它的endifequal(它实际上也不是真正的标记)。因为在这种情况下,外部的ifequal从来没有找到匹配的endifequal,一旦它遇到那个endfor它不知道该怎么做,因为它不是一个真正的标签,因此看似奇怪的消息发生了什么。

+0

Django抱怨,因为它认为它到达endfor时仍然处于ifequal块之一内。 – Amos 2010-10-21 17:57:40

+0

+1说明 – frnhr 2011-03-15 14:26:31