I'm filling in a form (a review on an item) by opening a modal and I would like to give users the possibility to edit that form eventually after submitting it.
I'm currently triggering the modal from a jinja template and the form redirects to a route.
How could I re-open the modal from my new route edit_review
to give users the chance to edit their reviews?
my form tag in the modal is:
<form method=POST action="{{ url_for('review_perfume', id=perfume._id) }}" id="form-review">
and my review_perfume
route is:
@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"]))
My edit_review
route will include:
@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))
(With the correct data from the form) but I'd like to know how to open the modal from it in order to update my db.
Please help?
Thank you!!