我正在通过打开一个模式来填写一个表单(对一个项目的评论),我想让用户在提交表单之后能够最终编辑该表单
我目前正在从jinja模板触发模式,表单重定向到路由。
我如何从我的新路线edit_review
重新打开模式,让用户有机会编辑他们的评论
模式中的我的表单标签是:
<form method=POST action="{{ url_for('review_perfume', id=perfume._id) }}" id="form-review">
我的review_perfume
路线是:
@app.route("/perfume/review/<id>", methods=["POST", "GET"])
@login_required
def review_perfume(id):
form = AddReviewForm()
perfume = mongo.db.perfumes.find_one({"_id": ObjectId(id)})
if form.validate_on_submit():
review_id = ObjectId.from_datetime(datetime.utcnow())
mongo.db.perfumes.update(
{"_id": perfume["_id"]},
{
"$push": {
"reviews": {
"_id": review_id,
"review_content": form.review.data,
"reviewer": current_user.username,
"date_reviewed": datetime.utcnow(),
"reviewer_picture": current_user.avatar,
}
}
},
)
flash("Your review has been received", "success")
return redirect(url_for("perfume", id=perfume["_id"]))
return redirect(url_for("perfume", id=perfume["_id"]))
我的edit_review
路线将包括:
@app.route("/edit_review/<review_id>/<perfume_id>")
@login_required
def edit_review(review_id, perfume_id):
mongo.db.perfumes.update(
{"_id": ObjectId(perfume_id), "reviews._id": ObjectId(review_id)},
{"$set": {"reviews.$.review_content": "This is my newest content."}},
)
flash("Your review has been updated!", "success")
return redirect(url_for("perfume", id=perfume_id))
(使用表单中的正确数据)但我想知道如何从中打开模式以更新我的数据库
请帮忙
谢谢
在路由中设置一个布尔变量,例如:
show_modal_on_page_load
,以指示希望在页面加载和Jinja模板写入逻辑中显示给定变量状态的模式在使用重定向时,有必要使用会话变量在重定向周围传递
show_modal_on_page_load
状态以下是流程的大致示意图:
有很多例子说明了如何在页面加载时显示模式,例如,Launch Bootstrap Modal on page load
Template.html:
相关问题 更多 >
编程相关推荐