(Flask / Jinja2 / SQLAlchemy)
У меня есть страница, на которой разные пользователи могут оставлять комментарии, и я пытаюсь указать имя пользователя в их комментариях. Проблема в том, что в таблице комментариев используется внешний ключ в столбце «Автор», поэтому, когда я пытаюсь вызвать автора комментария, используя {{ comment.author }}
, я получаю вместо этого идентификатор пользователя.
Чтобы получить все комментарии на странице я использую следующее в views.py :
# ...
all_comments = Comments.query.filter_by(page = this_page.id)
return render_template('page.html', all_comments = all_comments)
# ...
В шаблоне jinja я использую следующее для отображения всех комментариев:
{% for comment in all_comments %}
{{ comment.author }}:
{{ comment.content }}
{% endfor %}
Я получаю что-то вроде 1: my comment
вместо name: my comment
.
Мое первоначальное решение - передать переменную commenters
, содержащую объект BaseQuery со всеми люди, которые разместили на странице, а затем пытаются вызвать правильного комментатора, передав идентификатор пользователя, {{ commenters[post.author] }}
. К сожалению, это может вернуть только n-го комментатора вместо комментатора с указанным c ID, который я хотел.
Как мне получить объект из BaseQuery, который имеет указанный c ID в шаблон jinja? Я приветствую альтернативные решения, но я также хотел бы получить решение для этого конкретного сценария c, пожалуйста.
Спасибо!