0

我正在尝试创建一个按钮,允许用户通过将发布请求传递到以下视图来删除我系统上的用户。我的挑战是我无法获取表单的提交部分来触发 POST 请求,它总是生成 GET 然后无法删除用户:

<a href="{{ url_for('users.user_delete_admin', id=user.id) }}" class="btn btn-danger btn-xs" >Delete</a>

我尝试将方法 ="post" 作为参数传递给 url_for 方法,但这似乎不起作用

我的视图处理程序

@users_blueprint.route('/admin/delete-user/<int:id>', methods=["GET","POST"])
@login_required
@admin_login_required
def user_delete_admin(id):
    user = User.query.get((id))
    if request.method =="POST":
       user.delete()
       db.session.commit()
       return redirect(url_for('users.users_list_admin'))
    users = User.query.all()
    return render_template('users-list-admin.html', users=users, current_user=current_user)

和html表单:

    <table class="table table-striped table-bordered">
    <thead>
      <tr>
        <th>ID</th>
        <th>Username</th>
        <th>Is Admin ?</th>
        <th></th>
        <th></th>
      </tr>
    </thead>
    <tbody>
      {% for user in users %}
        <tr>
          <td>{{ user.id }}</td>
          <td>{{ user.name }}</td>
          <td>{{ user.admin }}</td>
          <td>
            <a href="{{ url_for('users.user_update_admin', id=user.id) }}" class="btn btn-info btn-xs">Edit</a>
          </td>
          <td>
            <a href="{{ url_for('users.user_delete_admin', id=user.id) }}" class="btn btn-danger btn-xs" >Delete</a>
          </td>
        </tr>
      {% endfor %}
    </tbody>
  </table>

用简单的形式处理这个相对简单,但由于某种原因,我无法让它正常工作。

谢谢

4

1 回答 1

1

像这样处理它:

<form  method = "post" action = "{{ url_for('users.user_delete_admin', id=user.id) }}">
            <button class="btn btn-danger btn-xs" type="submit">Delete</button>
            </form>
于 2015-05-26T17:14:48.700 回答