Недопустимый тег блока, ожидаемый ‘endblock’

#python #django

#python #django

Вопрос:

Я знаю, что эта проблема во всем stackoverflow, но этот конкретный ее экземпляр сбивает меня с толку. Причина в том, что я периодически получаю эту ошибку — вообще без изменения HTML-файла.

Проблема, похоже, здесь:

 {% extends "base.html" %}
{% load static %}
{% load support_tags %}

{% block content_header %}
<h1>Header</h1>
{% endblock content_header %}

{% block new-main-area %}
        {% ticket_categories as categories %} {# Problem is here #}
            <option value="None">Select a Category</option>
        {% for cat in categories %}
            <option value="{{cat.slug}}">{{cat}}</option>
        {% endfor %}
{% endblock new-main-area %}

{% block extrascripts_bottom %}
{% endblock extrascripts_bottom %}
  

Спасибо!

Ответ №1:

ИМХО, код неправильно использует with тег:

Замените следующие строки:

 {% ticket_categories as categories %} <!-- Problem is here -->
    <option value="None">Select a Category</option>
{% for cat in categories %}
    <option value="{{cat.slug}}">{{cat}}</option>
{% endfor %}
  

с:

 {% with ticket_categories as categories %} <!-- Problem is here -->
    <option value="None">Select a Category</option>
{% for cat in categories %}
    <option value="{{cat.slug}}">{{cat}}</option>
{% endfor %}
{% endwith %}
  

Или ( with совсем не обязательно):

 <option value="None">Select a Category</option>
{% for cat in ticket_categories %}
    <option value="{{cat.slug}}">{{cat}}</option>
{% endfor %}
  

Комментарии:

1. Это полностью сработало (оба варианта). Большое вам спасибо! Должно быть, я просто пропустил эту часть синтаксиса ‘with’.