Web2py: как передать аргументы из представления в контроллер для удаления записи из БД - PullRequest
0 голосов
/ 21 апреля 2019

У меня есть таблица, и в каждой строке у меня есть кнопка «Удалить». То, что я хочу сделать, это передать идентификатор строки через функцию onclick этой кнопки функции «delete» на контроллере.

Мой контроллер

def studentDelete():
    rec_id = request.args(0)
    crud.delete(db.student, rec_id,next=URL('Home','Students_List'))

Мой вид (когда я нажимаю на кнопку, отображается модальное окно, помогающее пользователю подтвердить или отменить действие удаления. #Warning - это идентификатор кнопки подтверждения из модального окна, если пользователь решает удалить запись.)

<div class='btn-group btn-group-justified JpositionA'><a class='btn btn-warning Jview btn-xs opciones'><span class='glyphicon glyphicon-remove'></span></a></div>;

<script>
$(document).on('click', '.opciones', function(e){
      e.preventDefault();
      btn = $(this);
      var tr = $(this).closest('tr');
      var row = tabla.row( tr );
      var datos=row.data();
      var id_record=datos.student.id;

      $('#myModal').modal('show')
     .one('click', '#warning', function(e) {
                     ajax('{{=URL('Tools', 'studentDelete')}}' + '?value=' + id_record);
          });
        });
     });
</script>

1 Ответ

0 голосов
/ 21 апреля 2019

Код Javascript отправляет идентификатор записи на сервер в строке запроса в виде переменной value, но код Python ожидает идентификатор в request.args.Вы можете просто изменить код Python на:

    rec_id = request.get_vars.value
...