#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'
.