def edit_post(url): post = Post.query.filter_by(url=url).first_or_404() form = PostForm() if form.validate_on_submit(): post.title = form.title.data post.url = form.url.data post.markdown_url = form.markdown_url.data post.summary = form.summary.data post.img_url = form.img_url.data # split the tags by comas post_tags = form.tags.data.replace(" ", "").split(",") # check for deleted tags Tag.check_deleted_tags(post, post_tags) # check for existing tags Tag.update_tags(post_tags, post) db.session.commit() flash('Changes on "{}" have been saved.'.format(form.title.data)) return redirect(url_for("dashboard.overview")) elif request.method == "GET": form.title.data = post.title form.url.data = post.url form.markdown_url.data = post.markdown_url form.summary.data = post.summary form.img_url.data = post.img_url # use regex to format the tags tag_regex = re.compile(r"\[(.*)\]") mo = tag_regex.search(str(post.tag.all())) form.tags.data = mo.group(1) return render_template( "dashboard/new_post.html", post=post, form=form, title="Edit Post", overview_active="is-active", )