UpdateView হল জ্যাঙ্গোর একটি ভিউ যা ফ্রন্টএন্ড থেকে যেকোনো মডেলের ডেটা আপডেট করতে ব্যবহৃত হয়। এটি একটি অন্তর্নির্মিত দৃশ্য যা সহজেই প্রয়োগ করা যেতে পারে। ভিউ আপডেট করার ক্ষেত্রে এটি অ্যাডমিন পেজের মতো কাজ করে। এই নিবন্ধে, আমরা একটি উদাহরণ নেব এবং প্রদর্শন করব কীভাবে Django-এ UpdateView ব্যবহার করতে হয়।
প্রথমত, একটি জ্যাঙ্গো প্রকল্প এবং একটি অ্যাপ তৈরি করুন। আমি "টিউটোরিয়াল11" নামে প্রকল্পটি তৈরি করেছি এবং "modelFormsDemo" নামের অ্যাপ .
এখন, কিছু মৌলিক জিনিস করা যাক।
settings.py-এ অ্যাপ যোগ করুন −
INSTALLED_APPS+ = ['modelFormsDemo']
প্রকল্পের urls.py-এ , অ্যাপের ইউআরএল অন্তর্ভুক্ত করুন।
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('', include('modelFormsDemo.urls')) ]
অ্যাপের urls.py,-এ নিম্নলিখিত যোগ করুন -
from django.urls import path,include from . import views urlpatterns = [ path('', views.home,name="home"), path('student/edit//', views.StudentUpdateView.as_view(), name="update"), path('success/', views.success, name='success') ]
এখানে আমরা তিনটি ইউআরএল তৈরি করেছি; একটি ফ্রন্টএন্ড রেন্ডার করার জন্য, একটি আপডেট করার জন্য UpdateView এর জন্য, এবং আপডেট করার পরে পুনঃনির্দেশ করার জন্য সাফল্য৷
উদাহরণ
models.py-এ , এটি যোগ করুন -
from django.db import models # Create your models here class Student(models.Model): name=models.CharField(max_length=100) standard=models.CharField(max_length=100) section=models.CharField(max_length=100)
এখানে আমরা একটি সাধারণ মডেল তৈরি করেছি। এটি একটি খুব মৌলিক মডেল৷
৷views.py-এ , নিম্নলিখিত যোগ করুন −
from django.shortcuts import render from .forms import StudentForm from django.views.generic.edit import UpdateView from .models import Student from django.urls import reverse_lazy # Create your views here. def home(request): if request.method=='POST': form=StudentForm(request.POST) if form.is_valid(): form.save() stuForm=StudentForm() return render(request,'home.html', {"stu_form":stuForm}) class StudentUpdateView(UpdateView): model=Student fields="__all__" template_name='update_view.html' success_url='/success/' def success(request): return render(request,'success.html')
এখানে আমরা জটিল কিছু করিনি; আমরা শুধু মডেল, ক্ষেত্র এবং টেমপ্লেটের একটি নাম দিয়েছি যা আমরা রেন্ডার করতে যাচ্ছি। এছাড়াও, আমরা একটি ফাংশন সংজ্ঞায়িত করেছি যা আপডেট করার পরে কী করতে হবে তা বলে দেবে৷
৷forms.py তৈরি করুন অ্যাপ ডিরেক্টরিতে এবং নিম্নলিখিত লাইনগুলি যোগ করুন -
from django import forms from .models import Student class StudentForm(forms.ModelForm): class Meta: model=Student fields=['name','standard','section']
এখানে আমরা সহজভাবে একটি ফর্ম তৈরি করেছি যা আমরা রেন্ডার করব।
এখন একটি টেমপ্লেট তৈরি করুন ফোল্ডার এবং এর ভিতরে তিনটি ফাইল যোগ করুন; home.html, update_view.html , এবং success.html।
home.html-এ এবং update_view.html −
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> {% for fm in stu_form %} <form method="post"> {%csrf_token%} {{fm.errors}}<br> {{fm.label}}:{{fm}}<br> {%endfor%} <button type="submit">Submit</button> </form> </body> </html>
success.html-এ , নিম্নলিখিত লাইন যোগ করুন −
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> <h2>Success</h2> </body> </html>
যে সঙ্গে, সবকিছু সেট করা হয়. এখন আপনি আউটপুট চেক করতে এগিয়ে যেতে পারেন।
আউটপুট
Home.html −
এখন আপনি যদি https://127.0.0.1:8000/student/edit/(student object id)/ এ যান তাহলে আপনি আমাদের update_view.html দেখতে পাবেন।
Update_view.html −