Не найдена реверсия для 'classroom' с аргументами '('',)'. Попытка 1 шаблона(ов): ['классная комната/(?P<classroom_id>[0-9]+)/\\\\Z'].

У меня возникла ошибка в моем проекте django. Исходя из того, что я искал, проблема кажется связанной с url, но мой url кажется правильным. Мой вид:

def student(request, student_id):
    student = get_object_or_404(Student, pk=student_id)
    faculty = Faculty.objects.filter(student=student)
    course = Course.objects.all()
    classroom = Classroom.objects.all()
    return render(request, 'polls/student.html', {'student': student,'faculty': faculty, 'courses':course,'classrooms':classroom})

Мои шаблоны:

{% block body %}
    <h2>{{ student.fname }} {{ student.lname }}</h2>

    <h3>Faculty</h3>
    {% if faculties %}
        {% for faculty in faculties %}
            <p><a href="{% url 'faculty' faculty.id %}">{{ faculty.name }}</a></p>
        {% endfor %}
    {% else %}
        <p> </p>
    {% endif %}

    <h3>Course</h3>
    {% for course in courses %}
    <p><a href="{% url 'course' course.id %}">{{ course.name }}</a> </p>
    {% endfor %}

    
    <h3>Class</h3>
    {% if classrooms %}
        {% for class in classrooms %}
            <p><a href="{% url 'classroom' classroom.id %}">{{ class.name }}</a> </p>
        {% endfor %}
    {% else %}
        <p> </p>
    {% endif %}
    </p>

{% endblock %}

Мой url:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name = 'index' ),
    path('classroom/<int:classroom_id>/', views.classroom, name='classroom'),
    path('student/<int:student_id>/', views.student, name='student'),
    path('teacher/<int:teacher_id>/', views.teacher, name='teacher'),
    path('faculty/<int:faculty_id>/', views.faculty, name='faculty'),
    path('course/<int:course_id>/', views.course, name='course'),
    path('create_class/', views.add_class,name = "create_class"),
    path('', include("django.contrib.auth.urls")),
]

Может ли любой эксперт по django помочь мне понять, что я делаю неправильно?

Вы должны определить classroom_id в вашем HTML шаблоне.

Более того, {% for class in classrooms %} должно быть {% for classroom in classrooms %}

Вы можете попробовать следующий HTML-шаблон.

{% block body %}
    <h2>{{ student.fname }} {{ student.lname }}</h2>

    <h3>Faculty</h3>
    {% if faculties %}
        {% for faculty in faculties %}
            <p><a href="{% url 'faculty' faculty.id %}">{{ faculty.name }}</a></p>
        {% endfor %}
    {% else %}
        <p> </p>
    {% endif %}

    <h3>Course</h3>
    {% for course in courses %}
    <p><a href="{% url 'course' course.id %}">{{ course.name }}</a> </p>
    {% endfor %}

    
    <h3>Class</h3>
    {% if classrooms %}
        {% for classroom in classrooms %}
            <p><a href="{% url 'classroom' classroom_id=classroom.id %}">{{ classroom.name }}</a> </p>
        {% endfor %}
    {% else %}
        <p> </p>
    {% endif %}
    </p>

{% endblock %}

Вернуться на верх