我在代码中的表中实现了删除行按钮。
html如下:
<td>
<a href="#myModal" role="button" class="btn btn-danger delete" data-toggle="modal" id="{{item.id}}" data-name="{{item.nombre}}"><i class="icon-trash icon-white"></i>DELETE
</a>
</td>
这会调用模态窗口,这是代码:
<div id="myModal" class="modal fade" tabindex="-1" role"dialog" aria-labeledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h3 id="myModalLabel"> Eliminar Cliente </h3>
</div>
<div class="modal-body">
<p>¿Realmente desea eliminar el producto <span id="modal_name"></span>?</p>
</div>
<div class="modal-footer">
<form method="post" id="frmEliminar">
{% csrf_token %}
<input type="hidden" id="modal_idCliente" name="cliente_id">
<button class="btn" data-dismiss="modal" aria-hidden="true"> Cerrar </button>
<button type="submit" class="btn btn-danger"> Eliminar </button>
</form>
</div>
</div>
</div>
这是我的观点:
def funcion_tabla(request,tabla_nombre):
if request.method=="POST":
if "cliente_id" in request.POST:
try:
id_producto = request.POST['cliente_id']
p = Cliente.objects.filter(id=id_producto)
mensaje = {"status":"True","cliente_id":p.id}
p.delete() # Elinamos objeto de la base de datos
return HttpResponse(json.dumps(mensaje),mimetype='application/json')
except:
mensaje = {"status":"False"}
return HttpResponse(json.dumps(mensaje),mimetype='application/json')
global resultado
nombre = tabla_nombre.capitalize()
if nombre == "Cliente":
resultado = Cliente.objects.order_by('rif')
if nombre == "Producto":
resultado = Producto.objects.order_by('id')
if nombre == "Cotizacion":
resultado = Cotizacion.objects.order_by('id')
if nombre == "Factura":
resultado = Factura.objects.order_by('id')
if nombre == "Prospecto":
resultado = Prospecto.objects.order_by('id')
return render_to_response('home/index.html', {'resultado' : resultado,'nombre_tabla':nombre})
我有这个脚本:
var nombre_tabla = "#example"; // id
var nombre_boton_eliminar = ".delete"; // Clase
var nombre_formulario_modal = "#frmEliminar"; //id
var nombre_ventana_modal = "#myModal"; // id
$(document).on('ready',function(){
$(nombre_boton_eliminar).on('click',function(e){
e.preventDefault();
var Pid = $(this).attr('id');
var name = $(this).data('name');
$('#modal_idCliente').val(Pid);
$('#modal_name').text(name);
});
var options = {
success:function(response) {
if(response.status=="True"){
alert("Eliminado!");
var idProd = response.product_id;
var elementos= $(nombre_tabla+' >tbody >tr').length;
if(elementos==1){
location.reload();
}else{
$('#tr'+idProd).remove();
$(nombre_ventana_modal).modal('hide');
}
}else{
alert("Hubo un error al eliminar!");
$(nombre_ventana_modal).modal('hide');
};
}
};
$(nombre_formulario_modal).ajaxForm(options);
});
我的问题是当我尝试删除时,我收到此消息:
POST http://127.0.0.1:8000 / cliente / 403(FORBIDDEN)
我是django的新手,有什么建议吗?
答案 0 :(得分:0)
我通过应用以下代码解决了这个问题
@ensure_csrf_cookie
在视图上导入
from django.views.decorators.csrf import ensure_csrf_cookie