首页 > 解决方案 > 为什么我的烧瓶 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 中使用返回重定向,但没有任何反应。

标签: pythonflaskflask-sqlalchemy

解决方案


推荐阅读