Deleting a view is a view that deletes a specific instance of a table from the database ( Logic ). It is used to delete entries in the database , for example , Delete geeksforgeeks Articles on . So deleting a view must display a confirmation message to the user , And the instance should be deleted automatically .Django Provides exceptional support for deleting views , But let's examine how it is done manually through a function - based view . This article focuses on deleting views , Which involves Django Forms、Django Models And so on . For delete view , We need a project that contains some models and multiple instances that can be deleted .
Django Delete view —— Function based view
How to use examples to create and use delete views Explanation . Consider a person named geeksforgeeks Project , It has a name called geeks Applications for .
After you have a project and an application , Let's create a model , We will create an instance of it from our view . stay geeks/models.py in ,
# Import standards from built-in Libraries Django Model
from django.db import models
# Declare a “GeeksModel” The new model of
class GeeksModel(models.Model):
# The model field
title = models.CharField(max_length = 200)
description = models.TextField()
# Rename the instance of the model with the title name
def __str__(self):
return self.title
After creating this model , We need to run two commands to create a database for it .
Python manage.py makemigrations
Python manage.py migrate
Now let's use shell Create some instances of this model , Run the form bash,
Python manage.py shell
Enter the following command
>>> 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()
Now we are ready for the back end . Verify that the has been removed from http://localhost:8000/admin/geeks/geeksmodel/ Create examples
Now let's first create our delete view , stay geeks/views.py
from django.shortcuts import (get_object_or_404,
render,
HttpResponseRedirect)
from .models import GeeksModel
# Delete view for details
def delete_view(request, id):
# Initial data dictionary with field name as key
context ={}
# Acquired and delivered id Related objects
obj = get_object_or_404(GeeksModel, id = id)
if request.method =="POST":
# Delete object
obj.delete()
# After deleting redirection to the home page
return HttpResponseRedirect("/")
return render(request, "delete_view.html", context)
Now use id The regular expression of is mapped to the... Of the view url, stay geeks/urls.py
from django.urls import path
# importing views from views..py
from .views import delete_view
urlpatterns = [
path('<id>/delete', delete_view ),
]
Deleting a view template includes a simple form , Used to confirm whether the user wants to delete the instance . stay geeks/templates/delete_view.html in ,
<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>
Everything is all set. , Now let's check if it works , visit http://localhost:8000/2/delete
Let's check if the instance has been deleted ,
It can be used as needed obj.delete() Function implements this view in any way .