Почему я не могу корректно перейти по ссылке через html файле?

Возникла проблема с переходом по ссылкам через url_for. Использую Flask, Python. Имеется страница profile, html код следующий:

{% extends 'base.html' %}

{%block content %}
{{ super () }}
        <h2>{{role}}: {{nameOfTeacher}}</h2>
                <p> {{current_user.get_id()}}</p>
                <p class="title"><a href = "{{ url_for('showWorksByMe', user_id = current_user.get_id()) }}">Задания, выданные мной</a></p>
        <p><a href="{{url_for('logout')}}">Выйти из профиля</a></p>
{% endblock %}

Как видно из кода, перехожу в функцию showWorksByMe, передаю значение user_id из функции get_id.

Функция showWorksByMe:

@app.route('/profile/<user_id>/worksbyme')
@login_required
def showWorksByMe(user_id):
    if current_user.is_professor(mainCursor):
        print(current_user.id_of_professor(mainCursor)) # просто как заглушка
    else:
        flash("У вас нет прав доступа к данной странице", "error")
        return redirect(url_for('login'))
    return render_template("worksByMe.html", title="Преподаватель-Профиль", tasks=fDataBase.getTaskAnnonceByMe(mainCursor, current_user.id_of_professor(mainCursor)))

В функции getTaskAnnonceByMe получаю номер и название работы часть кода worksByMe.html:

<h2>Задания, выданные вами</h2>
        <ul class = "list-tasks"> 
            {% for t in tasks %}
            <li>
                <p class="title"><a href="{{ url_for('essayResp', post_id=t.WorkID, user_id = current_user.get_id()) }}">{{t.NameOfWork}}</a></p>
            </li> 
            {% endfor %} 
        </ul>

Суть в том, что данная страница worksByMe.html не открывается, выходит ошибка 500, а в терминале выходит следующее:

werkzeug.routing.BuildError: Could not build url for endpoint 'profile'. Did you forget to specify values ['user_id']?

Однако если просто пропринтить url_for, указанный в html файле страницы profile (самая первая), то выйдет это:

/profile/4/worksbyme

, где 4 - ID юзера. Т.е. значение передается. Однако почему-то возникает ошибка. Где я ошибся? Нужна помощь!


Ответы (0 шт):