Cannot Generate a POST Request on Flask using url_for [duplicate]

旧巷老猫 提交于 2019-12-12 06:13:36

问题


I am attempting to create a button that allows for a user to delete a user on the my system by passing through a post request to the following view. My challenge is that I cannot get submission portion of the form to trigger a POST request, it always generates GET and then fails to delete the user :

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

I have tried passing in method ="post" as a parameter to the url_for method, but that doesn't seem to work

My view handler

@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)

And the html form:

    <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>

Handling this with a simple form is relatively simple, but for some reason I cannot get this to function properly.

Thanks


回答1:


Handled it like this:

<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>


来源:https://stackoverflow.com/questions/30464304/cannot-generate-a-post-request-on-flask-using-url-for

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!