1

问题

我正在 Flask 中制作 CRUD。我有一个有职位的用户,我想更新一个特定的职位。

当我单击user_positions.html中的锚链接时,会出现“找不到 URL”问题。

我正在使用 WTF Forms、SQLalchemy、PostgreSQL、Bootstrap 和 pgAdmin4。

我希望我已经给了你足够的信息。


在服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。

http://0.0.0.0:5000/user/24/url_for('user_position_update',%20owner_id=current_user.id,%20position_id=position.id)%20%7D%7D


我的代码

user_positions.html

 <a href="{{ url_for('user_position_update', owner_id=current_user.id, position_id=position.id) }}"><i class="mdi mdi-pencil"></i> Update</a>

路线.py

@app.route("/user/<string:owner_id>/positions/<string:position_id>/update", methods=['GET', 'POST'])
def user_position_update(owner_id, position_id):
    user = User.query.filter_by(id=owner_id).first()
    position = Position.query.filter_by(id=position_id).first()
    form = UpdatePositionForm()
    if current_user.is_authenticated:
            if form.validate_on_submit():
                strSQl= "update position set position='"+position+"' where owner_id="+str(user.id)
                db.session.execute(strSQl)
                db.session.commit()
                flash('Your position has been updated!', 'success')
                return redirect(url_for('user_positions'))
            elif request.method == 'GET':
                form.position.data = position
    return render_template('user_position_update.html', form=form, user=user, position=position)

表格.py

class UpdatePositionForm(FlaskForm):
    position = StringField('Position',
                    validators=[DataRequired()])
    date = DateTimeField('Date',
                    validators=[DataRequired()])
    submit = SubmitField('Update')

user_position_update.html

{% extends "layout.html" %}
{% block content %}
    <table class="table">
      <tr>
        <th>Position</th>
        <th>Date</th>
      </tr>
        <tr>
            <form method="POST" enctype="multipart/form-data">
                {{ form.hidden_tag() }}
            <td>
                <div class="form-group">
                    {{ form.positions.label(class="form-control-label") }}
                    <select class="form-control form-control-sm" name="position">
                        <option>{{ current_user.positions[-1].position }}</option>
                        <option>1</option>
                        <option>2</option>
                        <option>3</option>
                        <option>4</option>
                        <option>5</option>
                        <option>6</option>
                        <option>7</option>
                        <option>8</option>
                        <option>9</option>
                        <option>10</option>
                        <option>11</option>
                        <option>12</option>
                        <option>13</option>
                        <option>14</option>
                        <option>15</option>
                      </select>
                </div>
            </td>
            <td>
                <div class="form-group">
                    {{ form.position.label(class="form-control-label") }}
                    <input type="date" class="form-control" value="{{ position.created_date }}" name="date">
                </div>
            </td>
            <td>
                <div class="form-group">
                    {{ form.submit(class="btn btn-outline-info") }}
                </div>
            </td>
        </tr>
    </table>
{% endblock content %}

PostgreSQL 表

用户表

在此处输入图像描述

位置表

在此处输入图像描述

4

0 回答 0