Eliminar vista se refiere a una vista (lógica) para eliminar una instancia particular de una tabla de la base de datos. Se utiliza para eliminar entradas en la base de datos, por ejemplo, eliminando un artículo en geeksforgeeks. Por lo tanto, la vista Eliminar debe mostrar un mensaje de confirmación al usuario y debe eliminar la instancia automáticamente. Django brinda un soporte extraordinario para Eliminar vistas, pero veamos cómo se hace manualmente a través de una vista basada en funciones. Este artículo gira en torno a la vista Eliminar, que involucra conceptos tales como formularios de Django, modelos de Django .
Para Eliminar vista, necesitamos un proyecto con algunos modelos y múltiples instancias que podamos usar para eliminar.
Vista de eliminación de Django: vistas basadas en funciones
Ilustración de cómo crear y usar la vista Eliminar usando un ejemplo. Considere un proyecto llamado geeksforgeeks que tenga una aplicación llamada geeks.
Consulte los siguientes artículos para comprobar cómo crear un proyecto y una aplicación en Django.
Después de tener un proyecto y una aplicación, creemos un modelo del cual crearemos instancias a través de nuestra vista. En geeks/models.py,
Python3
# import the standard Django Model # from built-in library from django.db import models # declare a new model with a name "GeeksModel" class GeeksModel(models.Model): # fields of the model title = models.CharField(max_length = 200) description = models.TextField() # renames the instances of the model # with their title name def __str__(self): return self.title
Después de crear este modelo, necesitamos ejecutar dos comandos para crear la base de datos para el mismo.
Python manage.py makemigrations Python manage.py migrate
Ahora vamos a crear algunas instancias de este modelo usando shell, ejecute form bash,
Python manage.py shell
Ingrese los siguientes comandos
>>> from geeks.models import GeeksModel >>> GeeksModel.objects.create( title="title1", description="description1").save() >>> GeeksModel.objects.create( title="title2", description="description2").save() >>> GeeksModel.objects.create( title="title2", description="description2").save()
Ahora tenemos todo listo para el back-end. Verifique que las instancias se hayan creado desde http://localhost:8000/admin/geeks/geeksmodel/
Ahora vamos a crear primero nuestra vista de eliminación, en geeks/views.py
Python3
from django.shortcuts import (get_object_or_404, render, HttpResponseRedirect) from .models import GeeksModel # delete view for details def delete_view(request, id): # dictionary for initial data with # field names as keys context ={} # fetch the object related to passed id obj = get_object_or_404(GeeksModel, id = id) if request.method =="POST": # delete object obj.delete() # after deleting redirect to # home page return HttpResponseRedirect("/") return render(request, "delete_view.html", context)
Ahora una URL asignada a esta vista con una expresión regular de id,
en geeks/urls.py
Python3
from django.urls import path # importing views from views..py from .views import delete_view urlpatterns = [ path('<id>/delete', delete_view ), ]
La plantilla para la vista de eliminación incluye un formulario simple que confirma si el usuario desea eliminar la instancia o no. En geeks/templates/delete_view.html,
HTML
<div class="main"> <!-- Create a Form --> <form method="POST"> <!-- Security token by Django --> {% csrf_token %} Are you want to delete this item ? <input type="submit" value="Yes" /> <a href="/">Cancel </a> </form> </div>
Todo listo, ahora vamos a comprobar si funciona o no, visita http://localhost:8000/2/delete
Verifiquemos si la instancia ha sido eliminada o no,
Uno puede implementar esta vista de cualquier manera según el requisito usando la función obj.delete() .
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA