【问题标题】:Error : Invalid block tag: 'else', expected 'empty' or 'endfor'错误:无效的块标签:'else',预期为'empty'或'endfor'
【发布时间】:2013-06-10 03:40:07
【问题描述】:

我目前正在 Django 1.3.1 上做一些开始的事情,并且以下错误困扰了我 2 个小时。帮助我找出错误。我已将我的代码包含在bitbucket 中。

错误:-

TemplateSyntaxError at /events/archive/
Invalid block tag: 'else', expected 'empty' or 'endfor'

模板错误

在模板 /home/virus/py_tut/startthedark/startthedark/templates/events/archive.html 中,第 32 行出错

无效的块标签:'else',预期为'empty'或'endfor'

22                  {% csrf_token %}
23                  <input type="hidden" name="event_id" value="{{event.id}}"/>
24                  {% if attending %}
25                  <input class="attendance unattend" type = "submit" value = "Unattend" />
26                  {% else %}
27                  <input class = "attendance attend" type ="submit" value = "Attend"/>
28                  {% endif %}
29              </form>
30              -->
31          {% endfor %}        
32      {% else %}
33          <p>No events for today.</p>
34      {% endif %}
35  
36  {% endblock %}
37  

存档.html

{% extends "base.html" %}
{% load events_tags %}   
{% block title %}Archive -{{ block.super}}{% endblock %}
{% block main_content %}
    <a href="{% url ev_create %}">Create an Event</a>
    {% if events %}
        {% for e in events %}
            {% event e %}
                {% endfor %}        
    {% else %}
        <p>No events for today.</p>
    {% endif %}

{% endblock %}

events_tags.py

from django import template
from events.models import Attendance
def event(context, e):
    to_return = {
    'event' : e,
    #'request': context['request'],
    }
    if context['user'].is_authenticated():
        try:
            Attendance.objects.get(event=e,user = context['user'])#request.user)
            attending = True
        except Attendance.DoesNotExist:
            attending = False
        to_return.update({
            'attending':attending,
            'authenticated':True,
        })
    else:
        to_return['authenticated'] = False
    return to_return

register = template.Library()

register.inclusion_tag('events/event.html',takes_context=True)(event)

【问题讨论】:

  • 127.0.0.1:8000/events/tonight 加载成功但是当我点击Archive 时遇到错误...
  • 显示之前的代码,这样我们就可以看到endforelse是否有匹配的forif标签。

标签: django-1.3


【解决方案1】:

comment 标签,即 是 HTML 注释。 Django 不认识它们。如果你在注释块中包含了模板标签,Django 会处理它们而不是忽略。

对于 Django 中的多行 cmets,请使用:

{% comment %}
 ......
 ........
{% endcomment %}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 2017-03-03
    • 2018-03-25
    • 2012-05-03
    • 2017-08-05
    • 2013-06-20
    • 2021-12-08
    相关资源
    最近更新 更多