Lo primero que vamos a hacer es irnos a nuestro archivo views.py y en él vamos a crear la vista para eliminar una persona. La vista quedará de la siguiente manera:
def eliminar_persona(request, id_persona):
persona=Persona.objects.get(id=id_persona)
persona.delete()
return HttpResponseRedirect("/tabla")
Como verás lo que hace esta vista es recibir una id de persona, borra a la persona que tenga esa id y nos redirige a nuestra tabla.
Nos vamos a editar nuestro archivo tabla.html y agregamos una nueva columna llamada "Acciones" y en el bucle for le pondremos dos enlaces que conduzcan a una página borrar pasándo la id de persona que recibirá la vista para eliminarla
{% extends "miplantilla.html" %}
{% block titulo %} Tabla de personas {% endblock titulo %}
{% block contenido %}
<table border="1">
<thead>
<tr>
<th>Nombre</th>
<th>Edad</th>
<th>Aficion</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
{% for persona in personas %}
<tr>
<td>{{ persona.nombre }}</td>
<td>{{ persona.edad }}</td>
<td>{{ persona.aficion }}</td>
<td><a href="/editar/{{persona.id}}">Editar</a><br/><a href="/borrar/{{persona.id}}">Eliminar</a></td>
</tr>
{% empty %}
<tr><td colspan="4">No hay personas registradas</td></tr>
{% endfor %}
</tbody>
</table>
{% endblock contenido %}
Tan solo nos queda ir al archivo urls.py y crear la url:
url(r'borrar/(?P<id_persona>\d+)$','aplicacion1.views.eliminar_persona'),
Si probamos nuestra aplicación en el navegador y pulsamos el botón eliminar de alguna persona, nos la eliminará.
El último paso es configurar la opción de editar. Para ello creamos una nueva vista que tendrá este aspecto:
def editar_persona(request, id_persona):
persona=Persona.objects.get(id=id_persona)
if request.method=="POST":
formulario=FormularioPersonas(request.POST, instance=persona)
if formulario.is_valid():
formulario.save()
return HttpResponseRedirect("/tabla")
else:
formulario = FormularioPersonas(instance=persona)
return render_to_response("editar.html",{"formulario":formulario},context_instance=RequestContext(request))
tendremos que importar al principio del archivo:
from django.template import RequestContext
Crearemos ahora el archivo editar.html que tendrá esta estructura:
{% extends "miplantilla.html" %}
{% block titulo %} Editar persona {% endblock titulo %}
{% block contenido %}
<form method="POST">{% csrf_token %}
{{ formulario }}
<input type="submit" value="Editar" />
</form>
{% endblock contenido %}
Solo nos queda irnos a urls.py y agregar la nueva url:
url(r'editar/(?P<id_persona>\d+)$','aplicacion1.views.editar_persona'),
Si ahora abrimos nuestra aplicación y pinchamos sobre editar en alguna persona, nos cargará el formulario con sus datos y si los modificamos y los confirmamos, tambien se cambiarán en la base de datos.
Parte 1.- Tutorial Django: Hola Mundo, primer proyecto y aplicación
Parte 2.- Tutorial Django: Crear plantillas
Parte 3.- Tutorial Django: Formularios con base de datos I
Parte 4.- Tutorial Django: Formularios con base de datos II
muy buena explicación, buen aporte!!!!
ResponderEliminargracias
disculpa tal vez podrías hacer un tutorial de como agregar bootstrap a este mismo ejercicio......???