Невозможно создать запрос POST во Flask с использованием url_for

Я пытаюсь создать кнопку, которая позволяет пользователю удалять пользователя в моей системе, передавая почтовый запрос в следующее представление. Моя проблема заключается в том, что я не могу получить часть формы для запуска запроса POST, он всегда генерирует GET, а затем не может удалить пользователя:

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

Я пробовал передать method = "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>

Справиться с этим с помощью простой формы относительно просто, но по какой-то причине я не могу заставить это работать должным образом.

Спасибо


person Geri Atric    schedule 26.05.2015    source источник
comment
Большое спасибо - даже не знал, где искать. Это на самом деле вышло из учебника   -  person Geri Atric    schedule 26.05.2015


Ответы (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>
person Geri Atric    schedule 26.05.2015