Обновить представление - представления на основе функций Django
Обновить представление относится к представлению (логике) для обновления определенного экземпляра таблицы из базы данных с некоторыми дополнительными сведениями. Он используется для обновления записей в базе данных, например, для обновления статьи на geeksforgeeks. Таким образом, представление «Обновить» должно отображать старые данные в форме и позволять пользователю обновлять данные только оттуда. Django обеспечивает экстраординарную поддержку обновлений представлений, но давайте проверим, как это делается вручную с помощью функционального представления. Эта статья посвящена обновлению View, в котором используются такие концепции, как Django Forms, Django Models.
Для просмотра обновлений нам нужен проект с некоторыми моделями и несколькими экземплярами, которые будут отображаться. По сути, представление «Обновить» представляет собой комбинацию представления «Подробности» и представления «Создать».
Представление обновлений Django - представления на основе функций
Иллюстрация того, как создать и использовать представление «Обновить» на примере. Рассмотрим проект под названием 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 libraryfrom 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 we will create a Django ModelForm for this model. Refer this article for more on modelform – Django ModelForm – Create form from Models. create a file forms.py in geeks folder,
Python3
from django import formsfrom .models import GeeksModel# creating a formclass GeeksForm(forms.ModelForm): # create meta class class Meta: # specify model to be used model = GeeksModel # specify fields to be used fields = [ "title", "description"] |
Для Update_view потребуется некоторая идентификация, чтобы получить конкретный экземпляр модели. Обычно это уникальный первичный ключ, такой как id . Чтобы указать эту идентификацию, нам нужно определить ее в urls.py. Зайдите в geeks / urls.py,
Let’s create these views with explanations. In geeks/views.py,
Python3
from django.shortcuts import (get_object_or_404, render, HttpResponseRedirect)# relative import of formsfrom .models import GeeksModelfrom .forms import GeeksForm# after updating it will redirect to detail_Viewdef detail_view(request, id): # dictionary for initial data with # field names as keys context ={} # add the dictionary during initialization context["data"] = GeeksModel.objects.get(id = id) return render(request, "detail_view.html", context)# update view for detailsdef update_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) # pass the object as instance in form form = GeeksForm(request.POST or None, instance = obj) # save the data from the form and # redirect to detail_view if form.is_valid(): form.save() return HttpResponseRedirect("/"+id) # add form dictionary to context context["form"] = form return render(request, "update_view.html", context) |
Now create following templates in templates folder,
In geeks/templates/update_view.html,
HTML
<div class="main"> <!-- Create a Form --> <form method="POST"> <!-- Security token by Django --> {% csrf_token %} <!-- form as paragraph --> {{ form.as_p }} <input type="submit" value="Update"> </form></div> |
In geeks/templates/detail_view.html,
HTML
<div class="main"> <!-- Display attributes of instance --> {{ data.title }} <br/> {{ data.description }}</div> |
Давайте проверим, все ли работает, посетив http: // localhost: 8000/1 / update.

Здесь вы можете увидеть форму с данными, уже заполненными из экземпляра. Теперь можно редактировать эти данные и легко обновлять их, давайте проверим.

Нажмите "Обновить" и готово.

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