Удалить представление - представления на основе функций Django

Опубликовано: 24 Февраля, 2022

Удалить представление относится к представлению (логике) для удаления определенного экземпляра таблицы из базы данных. Он используется для удаления записей в базе данных, например, при удалении статьи на geeksforgeeks. Таким образом, представление «Удалить» должно отображать подтверждающее сообщение для пользователя и автоматически удалять экземпляр. Django предоставляет необычную поддержку для удаления представлений, но давайте проверим, как это делается вручную с помощью представления на основе функций. Эта статья посвящена Delete View, в которой используются такие концепции, как Django Forms, Django Models.

Для удаления представления нам нужен проект с некоторыми моделями и несколькими экземплярами, которые мы можем использовать для удаления.

Django Delete View - Представления на основе функций

Иллюстрация того, как создать и использовать представление удаления на примере. Рассмотрим проект под названием geeksforgeeks, в котором есть приложение под названием geeks.

Refer to the following articles to check how to create a project and an app in Django. 

  • How to Create a Basic Project using MVT in Django?
  • How to Create an App in Django ?

После того, как у вас есть проект и приложение, давайте создадим модель, экземпляры которой мы будем создавать с помощью нашего представления. В 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

После создания этой модели нам нужно запустить две команды, чтобы создать для нее базу данных.

 Python manage.py makemigrations
Python manage.py migrate

Теперь давайте создадим несколько экземпляров этой модели с помощью оболочки, запустим форму bash,

 Оболочка Python manage.py

Введите следующие команды

 >>> из geeks.models импортировать 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 ()

Теперь у нас все готово для бэкенда. Убедитесь, что экземпляры были созданы с http: // localhost: 8000 / admin / geeks / geeksmodel /

Now let’s create our delete view first, In 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)

Теперь сопоставление URL-адреса с этим представлением с регулярным выражением id,
В гиках / urls.py

Template for delete view includes a simple form confirming whether user wants to delete the instance or not. In 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>

Все готово, теперь давайте проверим, работает он или нет, зайдите на http: // localhost: 8000/2 / delete

Проверим, удален ли экземпляр,

Это представление можно реализовать любым способом согласно требованиям, используя функцию obj.delete () .

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.