web2py Delete sin recargar página

Para eliminar algún componente de la página, un div, li, tr….podemos usar en la vista:

<pre>{{=A(SPAN('  '+r.etiqueta, _class='fa fa-trash', _style='color:white'), callback=URL('del_etiqueta', args=[id_persona,id_entitat,
r.id]), delete='li', _class='dropdown-item')}}</pre>

En este caso eliminaremos el «<li>» más cercano después de haber ejecutado la función ‘del_etiqueta’ de nuestro controlador:

<pre>def del_etiqueta():
    id_person = int(request.args(0))
    id_ent = int(request.args(1))
    id_et = int(request.args(2))
    try:
        id = db((Etiq_pers.id_persona == id_person) & (Etiq_pers.id_entidad == id_ent) &
       (Etiq_pers.id_etiqueta == id_et)).select(Etiq_pers.id).first().id
    except:
        id=None
    if id is not None:
        #db(Etiq_pers.id==id).delete()
        sql = "DELETE FROM tbl_etiquetas_personas WHERE id = {0}"
        metes = (db.executesql(sql.format(id)))
        response.flash = 'La etiqueta ha estat eliminada del usuari'
    else:
        response.flash = 'La etiqueta NO ha estat eliminada del usuari'
    redirect(URL('edit_etiq', args=[id_ent, id_person], user_signature=True))