TemplateSyntaxError в /опросы/ Недопустимый тег блока в строке 27

#python #html #django

Вопрос:

В настоящее время я работаю над учебником по Django и только что закончил часть 3, но получаю эту ошибку при попытке доступа http://127.0.0.1:8000/polls/:

TemplateSyntaxError в /опросы/ Недопустимый тег блока в строке 27: ‘ Вы забыли зарегистрироваться или загрузить этот тег?

Способ запроса: ПОЛУЧИТЬ URL-адрес запроса: http://127.0.0.1:8000/polls/ Версия Django: 3.1.7 Тип исключения: TemplateSyntaxError Значение исключения:
Недопустимый тег блока в строке 27: ‘ Вы забыли зарегистрироваться или загрузить этот тег?

Ошибка при отрисовке шаблона

Я думаю, что есть проблема с моим views.py файл, но я скопировал/вставил все из учебника, пытаясь избежать этих проблем. Это точка зрения, на которую выводится ошибка:

 def index(request):
    latest_question_list = Question.objects.order_by('-pub_date')[:5]
    context = {'latest_question_list': latest_question_list}
    return render(request, 'polls/index.html', context)
 

Я очень новичок в этом, поэтому, если я упускаю что-то очевидное, пожалуйста, укажите на это.

index.html:

 {% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="{% url ‘polls:detail' question.id %}">{{ question.question_text }}</a></li>    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
 

Ответ №1:

Я думаю , что ваша проблема заключается здесь: <a href="{% url ‘polls:detail' question.id %}"> , точнее в ‘polls:detail'

Обратите внимание, что первая цитата не является тем же символом, что и вторая. Вы, вероятно, имели в виду :

 <a href="{% url 'polls:detail' question.id %}">`
 

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

1. Исправлена одна проблема, возникает другая: не удалось проанализировать остаток: ‘</span><span’ из ‘</span>

2. Уточнение: ошибка при отрисовке шаблона. Эта часть была выделена красным цветом в строке 22: {% url</span> <span class=»s5″>‘опросы:<span class=»s5″></span><span class=»s4″>подробно’ question.id %}

3. Пожалуйста, отредактируйте свой вопрос, я не вижу ничего <span> в приведенных фрагментах.

Ответ №2:

В index.html файл попробуйте добавить {% endfor %} в новую строку, я думаю, это должно быть исправлено.

 {% if latest_question_list %}
    <ul>
    {% for question in latest_question_list %}
        <li><a href="{% url ‘polls:detail' question.id %}">{{ question.question_text }</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}
 

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

1. На самом деле {% endfor %} в конце <li> строки есть «а».

2. Перемещение его в новую строку решило первую проблему, но создало другую: не удалось проанализировать остаток: «опросы:подробности» из «опросы:подробности». Что думаешь по этому поводу?

3. Да, не ставьте {% endfor %} в ту же строку после </li>, нажмите enter и переместите ее в новую строку

4. как называется этот URL-адрес в urls.py?

5. Не имеет значения, находится ли {% endfor %} он на новой линии или нет. Сообщение об ошибке отличалось только из-за того, как работает анализатор шаблонов. Ваша проблема заключается в вашей цитате ‘polls:detail' .