【问题标题】:Flask WTForms HiddenInput value not being sent to appFlask WTForms HiddenInput 值未发送到应用程序
【发布时间】:2020-06-20 14:44:24
【问题描述】:

所以,这是我关于 Stack Overflow 的第一个问题。请保持外邦人..

我正在尝试将 IntegerField 用作 HiddenInput,但是当我提交表单时,该字段的值不会发送到我的应用程序。 (当我调试时,值为''),但我可以看到通过开发工具在页面本身上设置了正确的值。

如果我删除了 widget=HiddenInput(),它可以正常工作。我敢肯定有一些非常明显的原因,但我一直找不到。

班级:

class RemoveTimeslot(FlaskForm):
    ts_id = IntegerField(widget=HiddenInput())
    remove = SubmitField('Remove')

从外观上看:

slot = Timeslot.query.filter_by(id=rem_form.ts_id.data).first()
    if slot:
        db.session.delete(slot)
        db.session.commit()
        flash('Timeslot Removed!')
        return redirect(url_for('admin.timeslots'))
    else:
        flash('Failed to remove timeslot!', 'warning')

从模板: '''

{% for slot in slots %}
<tr>
    <td>{{slot.start.isoformat(timespec='minutes')}}</td>
    <td>{{slot.end.isoformat(timespec='minutes')}}</td>
    <td>{{slot.duration}} Minutes</td>
    <td>
        <form method="POST" action="">
            {{ rem_form.hidden_tag() }}
            {{ rem_form.remove(class="btn btn-dark") }}
            {{ rem_form.ts_id(value=slot.id) }}
        </form>
    </td>
</tr>
{% endfor %}

任何帮助将不胜感激!

【问题讨论】:

    标签: html forms flask flask-sqlalchemy flask-wtforms


    【解决方案1】:

    我终于可以通过在模板中添加type="hidden" 来让它工作。在课程本身中,我将其保留为ts_id = IntegerField(),但是当我在模板中创建字段时,我将其更改为{{ rem_form.ts_id(value=slot.id, type="hidden") }},并且成功了!我不知道为什么一个与另一个的工作方式不同...如果您有任何想法,请告诉我!

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 1970-01-01
      • 2012-11-13
      • 2021-10-06
      • 2016-04-08
      • 1970-01-01
      • 2019-02-21
      • 2023-04-04
      • 2014-02-05
      相关资源
      最近更新 更多