UpdateView ডজ্যাঙ্গোতে একটি ভিউ যা ফ্রন্টএন্ড থেকে যেকোনো মডেল ডেটা আপডেট করতে ব্যবহৃত হয়। এটি একটি বিল্ট-ইন ভিউ যা সহজে প্রয়োগ করা যায়। এটি অ্যাডমিন পেজের মতো আপডেট ভিউয়ে কাজ করে। এই আর্টিকেলে, আমরা একটি উদাহরণ নিয়ে দেখব কিভাবে ডজ্যাঙ্গোতে UpdateView ব্যবহার করা যায়।
প্রথমে একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন। আমি প্রজেক্টের নাম দিয়েছি "tutorial11" এবং অ্যাপের নাম "modelFormsDemo"।
এখন, কিছু বেসিক কাজ করি।
settings.py-তে অ্যাপ যোগ করুন:
INSTALLED_APPS += ['modelFormsDemo']
প্রজেক্টের urls.py-তে, অ্যাপের urls ইনক্লুড করুন:
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')
]
এখানে আমরা তিনটি url তৈরি করেছি: একটি ফ্রন্টএন্ড রেন্ডার করার জন্য, একটি আপডেট করার জন্য UpdateView, এবং আপডেট করার পর রিডাইরেক্ট করার জন্য success।
উদাহরণ
models.py-তে এটি যোগ করুন:
from django.db import models
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
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']
এখানে আমরা সিম্পলি একটি ফর্ম তৈরি করেছি যা আমরা রেন্ডার করব।
এখন একটি templates ফোল্ডার তৈরি করুন এবং স তিনটি ফাইল যোগ করুন: 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 -
