greyli / bluelog

The 2024 version: https://github.com/greyli/greybook
MIT License
449 stars 657 forks source link

edit_link 表单验证未通过时,无法在html表单上保留已做的修改 #25

Closed LiangZZZ123 closed 1 year ago

LiangZZZ123 commented 4 years ago

按照您在admin.py中原有的写法,所有的edit_xxx function在表单验证未通过时,已做的修改在html表单上都无法保留。 建议修改成以下写法:

@admin_bp.route('/link/<int:link_id>/edit', methods=['GET', 'POST'])
@login_required
def edit_link(link_id):
    link = Link.query.get_or_404(link_id)
    form = LinkForm(request.form)
    if request.method == "GET":
        form.name.data = link.name
        form.url.data = link.url
    else:
        if form.validate_on_submit():
            link.name = form.name.data
            link.url = form.url.data
            db.session.commit()
            flash('Link updated.', 'success')
            return redirect(url_for('.manage_link'))
    return render_template('admin/edit_link.html', form=form)
greyli commented 1 year ago

感谢反馈!已在 https://github.com/greyli/new-bluelog/pull/16 修复。之前竟然没有注意到这个问题