python - 为什么我的烧瓶 sqlalchemy 中的数据没有更新?
问题描述
我使用 wtforms 输入数据。现在,当我调用编辑路由时,我要编辑的数据显示在我的输入中,但是当我提交它时,它会不断添加数据而不更新特定数据。
路线.py:
@app.route("/edit/<int:expense_id>", methods=['GET', 'POST'])
def edit(expense_id):
form = ExpenseForm()
expense = Expenses.query.get(expense_id)
budget = Budgets.query.filter_by(id=expense.budget_id).first()
posted_expenses = Expenses.query.filter_by(budget_id=budget.id)
form.categories.data = expense.categories
form.cost.data = expense.category_cost
if form.validate_on_submit():
expense.categories = form.categories.data
expense.category_cost = form.cost.data
db.session.commit()
return render_template("expenses.html", budget=budget, form=form, posted_expenses=posted_expenses, expense=expense)
html:
{% for post in posted_expenses %}
<tr>
<td>{{ post.id }}</td>
<td>{{ post.categories }}</td>
<td>{{ "{:,.2f}".format(post.category_cost|float) }}</td>
<td>{{ post.category_date.strftime('%Y-%m-%d') }}</td>
<td><a href="{{ url_for('edit', expense_id=post.id )}}">Edit</a><a href="">Delete</a></td>
</tr>
{% endfor %}
</tbody>
<form action="{{ url_for('expenses', budget_id=budget.id )}}" method="POST">
{{ form.csrf_token }}
<tbody class="table-input">
<tr>
<td>
{{ form.categories.label }}
</td>
<td>
{{ form.categories }}
</td>
<td>
{{ form.cost.label }}
</td>
<td>
{{ form.cost }}
</td>
<td>
{{ form.submit }}
</td>
</tr>
</tbody>
</form>
我也尝试在我的 if 中使用返回重定向,但没有任何反应。
解决方案
推荐阅读
- size - Facebook 上允许的最大视频大小是多少?
- jsp - 使用 jsp-servlet 获取复选框值的问题
- docker - Docker 构建过程无法消耗分配的全部 RAM
- css - 模糊文本颜色
- java - HarmonyOS中如何获取触摸事件的触摸坐标?
- tensorflow - 使用 keras 将彩色数据集更改为灰度
- c - 通过多路复用向上/向下计数时,有没有办法在 7 段上停止闪烁?
- python - 如何从字典中删除特定元素?
- flutter - 出现不同的屏幕高度问题,MediaQuery.of(context).size.height / value 不起作用?颤振界面
- flutter - Flutter tabController 监听器在滑动时响应缓慢