Django - Checkbox en Django

 
Vista:

Checkbox en Django

Publicado por Juan Manuel (1 intervención) el 25/03/2017 04:16:31
Buenas noches,

Soy nuevo en django y estoy intentando realizar un checkbox, en la views.py tengo la clase que imprime en una tabla los registros que se encuentran almacenados en la bd:
1
2
3
class DatosList(ListView):
	model = Datos
	template_name = 'datos/datos_list.html'

El template se me genera así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<table id="example" class="table table-striped table-bordered" cellspacing="0" width="100%">
	<thead>
		<tr>
			<th>Nombre</th>
			<th>Edad</th>
			<th>Sexo</th>
			<th>Salario</th>
                                         <th>Horas trabajadas</th>
		</tr>
	</thead>
	<tbody>
		{% if object_list %}
			{% for datos in object_list %}
				<tr>
					<td class="center">{{ datos.nombre }}</td>
					<td class="center">{{ datos.edad }}</td>
					<td class="center">{{ datos.sexo }}</td>
					<td class="center">{{ datos.salario }}</td>
					<td class="center">{{ datos.horas }}</td>
					<form action="calcular" name="formulario" method="post">
					{% csrf_token %}
						<td class="center"><input type="checkbox" name="checkbox"  value="{{ datos.id }}">{{ datos.id }}</td>
					<td>
 
						<a class="btn btn-primary" href="{% url 'datos:editar' prueba.id %}">Editar</a>
						<a class="btn btn-danger" href="{% url 'datos:eliminar' prueba.id %}">Eliminar</a>
					</td>
				</tr>
			{% endfor %}
 
			{% else %}
				<h3>No hay registros de empleados</h3>
			{% endif %}
 
 
	</tbody>
</table>
 
<center><input type="submit" name="submit" value="Calcular Descuentos" class="btn btn-info" onclick="envia()" ></center>
</form>

Tengo una función en js que envia lo que se recoge en el checkbox asi
1
2
3
function envia(){
	document.formulario.submit();
}

Lei en la documentación que el checkbox podía recibirse con la siguiente vista:
1
2
3
4
def calcular(request):
	if "checkbox" in request.POST:
		lista=request.POST.getlist('checkbox')
		return HttpResponse(lista)

Pero solo me imprime el primer dato del primer registro almacenado, si seleccion el segundo me arroja error he view apps.prueba.views.hola didn't return an HttpResponse object. It returned None instead.

En si lo que quiero hacer es que en un listado de empleados, elegir con un checkbox cuales les quiero realizar un descuento con el salario de acuerdo a las horas. Sacar el salario de esos empleados elegidos y las horas y aplicarle unas operaciones.

Estoy estancado y no se que más puedo hacer, cualquier ayuda sea bienvenida.

Gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder