ОБНОВЛЕНИЕ : исправлено путем передачи
<input type="hidden" id="commentID" name="commentID" value={{ comment.id }}>
и получения значения внутри моей формы с помощью:
commentID = request.form.get('commentID')
Оригинал: Я полный новичок в Flask, так что простите меня, если это глупый вопрос. Я пытаюсь добавить функционал для обновления комментария к Flask.
Я уверен, что это плохая практика, но в настоящее время у меня есть представление сообщения, которое отображается с использованием аргумента post_id, который вы указываете из url_for (). Формы как для добавления комментария, так и для написания комментария встроены в сам маршрут публикации (почти уверен, что это не лучшая идея).
@posts.route("/post/<int:post_id>", methods=['POST', 'GET'])
def post(post_id):
post = Post.query.get_or_404(post_id)
postForm = PostComment()
editForm = PostComment()
if editForm.validate_on_submit():
commentID = request.form.get('comment')
# comment = Comment.query.get_or_404(comment_id) # how do i get the comment id?
comment.content = form.content.data
db.session.commit()
flash("Your comment has been updated successfully.", 'success')
return redirect(url_for('posts.post', post_id=post.id))
if postForm.validate_on_submit():
comment = Comment(user_id=current_user.id, post_id=post_id, content=postForm.content.data)
db.session.add(comment)
db.session.commit()
flash("Your comment has been posted successfully.", 'success')
return redirect(url_for('posts.post', post_id=post.id))
return render_template('posts/post.html', title=post.title, post=post, form=postForm, editForm=editForm)
* 1015 удалите и комментарии другим путем. Однако, как упоминалось выше, я также пытаюсь добавить функцию обновления комментария. В настоящее время у меня есть две формы в маршруте: одна для добавления комментария, а другая для обновления комментария. Итак, я пытаюсь каким-то образом получить идентификатор комментария из шаблона, вызвать его с помощью базы данных, а затем вручную изменить его. Однако я не слишком уверен, как получить commentID для базы данных, чтобы ссылаться на него.
Вот фрагмент моего шаблона:
<form method="POST" action="">
{{ editForm.hidden_tag() }}
<fieldset class="form-group">
<div class="form-group">
{{ editForm.content(class="form-control form-control-lg") }}
</div>
<div class="form-group">
{{ editForm.submit(class="btn btn-outline-info") }}
</div>
</form>
Если бы кто-нибудь мог помочь мне решить эту проблему, я был бы очень признателен. Кроме того, если бы кто-нибудь мог сообщить мне способ улучшить эту практику (возможно, метод создания отдельных маршрутов для добавления / редактирования комментариев), это тоже было бы очень признательно.
Большое спасибо.