Ошибка в /basic_app/ Неверный тег блока в строке 10: 'endblock', ожидалось 'empty' или 'endfor'. Вы забыли зарегистрировать или загрузить этот тег?
Я новичок в HTML шаблонах и Django.
school_list.html
{% extends "basic_app/basic_app_base.html" %}
<!-- {% load static %} -->
{% block body_block %}
<h1>Here are the list of all the schools!</h1>
<ol>
{% for school in schools %}
<h2><li><a href="{{school.id}}">{{school.name}}</a></li></h2>
{% endfor % }
</ol>
{% endblock %}
**Ошибка:**TemplateSyntaxError в /basic_app/
Недопустимый тег блока в строке 10: 'endblock', ожидалось 'empty' или 'endfor'. Вы забыли зарегистрировать или загрузить этот тег?
Views.py
from django.shortcuts import render
from django.views.generic import (View,TemplateView,
ListView,DetailView)
from . import models
# from django.http import HttpResponse
# Template views with CBV
class IndexView(TemplateView):
template_name='index.html'
# List View
class SchoolListView(ListView):
context_object_name='schools'
model=models.School
template_name='basic_app/school_list.html'
# Detail View
class SchoolDetailView(DetailView):
context_object_name='school_detail'
model=models.School
template_name='basic_app/school_detail.html'
models.py
from django.db import models
from django.urls import reverse
# Create your models here.
class School(models.Model):
name=models.CharField(max_length=256)
principal=models.CharField(max_length=256)
location=models.CharField(max_length=256)
def __str__(self):
return self.name
class Student(models.Model):
name=models.CharField(max_length=256)
age=models.PositiveIntegerField()
school=models.ForeignKey(School,related_name='students',on_delete=models.CASCADE)
def __str__(self):
return self.name
urls.py
from django.urls import include, re_path
# from django.conf.urls import url
from basic_app import views
app_name='basic_app'
urlpatterns = [
re_path(r'^$',views.SchoolListView.as_view(),name='list'),
re_path(r'^(?P<pk>\d+)/$',views.SchoolListView.as_view(),name='detail')
]
Мне нужен вывод, подобный следующему изображению, при нажатии на страницу школы :
Я нашел ошибку, и я давал слишком много места после % при закрытии тега endfor.
ошибка в файле school_list.html в строке 8 :{% endfor % } слишком много пробела после % при закрытии тега endfor.
решение: {% endfor %}
"После исправления этой ошибки в строке 8, она сработала для меня."
Нужно убрать лишний пробел после % в {% endfor % }
после коррекции
{% extends "basic_app/basic_app_base.html" %}
<!-- {% load static %} -->
{% block body_block %}
<h1>Here are the list of all the schools!</h1>
<ol>
{% for school in schools %}
<h2><li><a href="{{school.id}}">{{school.name}}</a></li></h2>
{% endfor %} <---------------------- in this line need correction, put {% endfor %} insted of {% endfor % }
</ol>
{% endblock %}