gpt4 book ai didi

python - 如何以 wtf flask 形式发送隐藏字段以进行数据库插入

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:40 26 4
gpt4 key购买 nike

如何在 wtf 表单中指定多个数据库字段,以便我可以在数据库中正确插入一行。我的模板中需要这样的东西

        {{ wtf.form_field(gform.GHF(value="{{ project.name }}")) }}

因为我要迭代一个(项目)到多个(目标)
项目-(有很多目标)
-目标-

我的目标表格出现了多次。

{% for project in P %}
{% for pgoal in project.goals.all() %}
<li>
Goal: {{ pgoal.goal }}<br>
{% if loop.last %}
<form class="form form-horizontal" method="post" role="gform">
{{ gform.hidden_tag() }}
{{ wtf.form_errors(gform) }}
{{ wtf.form_field(gform.goal) }}
Help here? do i need a hiddenfield to know which project?
{{ wtf.form_field(gform.submit) }}<br>
and so on...

一旦我有了正确的项目,我就会在我的 View 中使用它

    u=models.Projects.query.get(correct project?)
p=models.Goals(goal=gform.goal.data,proj=u)

最佳答案

我不会用隐藏字段来做。我会让每个表单的提交方式有所不同。

你应该有类似的东西

<form class="form form-horizontal" method="post" role="gform" 
action="{{ url_for('add_goal_to_project', project_id=project.id) }}">

路线是

@app.route('.../<int:project_id>', methods=['POST'])
def add_goal_to_project(project_id):
gform = GForm(....)
if gform.validate_on_submit():
project = models.Projects.query.get(project_id)
goal = models.Goals(gform.goal.data, proj=project)
# Do anything else you need to do, such as adding and committing
# the new object
return redirect(...)
return render_template(...)

我跳过了表单创建、重定向和 render_template 调用中的细节,但这应该可以理解这个想法。每个目标表单的操作都指向一条根据项目 ID 构建的路线。

您可以扩展它以允许编辑目标,并且您还可以通过一些不错的 ajax 帖子让它变得更好。

关于python - 如何以 wtf flask 形式发送隐藏字段以进行数据库插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23459147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com