মডেল-ফর্মের ব্যবহার সম্পর্কে জানতে শুরুতেই first_app এর মধ্যে forms.py নামের ফাইল ক্রিয়েট করে ফেলি
Code:: 6.8.1
first_app/forms.py
from django import forms
from first_app.models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = '__all__'
labels = {
'name' : 'Student Name',
'roll' : "Student Roll"
}
widgets = {
'name' : forms.TextInput(),
}
help_texts = {
'name' : "Write your full name"
}
error_messages = {
'name' : {'required' : 'Your name is required'}
}
৪ নং লাইনে StudentForm ক্লাস থেকে ModelForm ক্লাসকে ইনহেরিট করার মাধ্যমে StudentForm পাইথন ক্লাসটিকে একটি মডেল-ফর্মে রুপান্তর করা হয়েছে
এরপর views ফাইলে নতুন একটি ফাংশন লেখা হয়েছে StudentForm নিয়ে কাজ করার জন্য-
Code:: 6.8.2
first_app/views.py
from django.shortcuts import render, redirect
from . import models,forms
# Create your views here.
def home(request):
student = models.Student.objects.all()
return render(request,"home.html", {'data': student})
def delete_student(request, roll):
std = models.Student.objects.get(pk = roll).delete()
return redirect("homepage")
def add_student(request):
form = forms.StudentForm()
return render(request, 'add_student.html', {'form' : form})
ফাংশনের শেষের লাইনে কনটেক্সট ডাটা form সহ 'add_student.html' ফাইলটি রেন্ডার করা হয়েছে
add_student.html ফাইলটি ক্রিয়েট করে ফেলি-
Code:: 6.8.3
first_app/templates/add_student.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<link
rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm"
crossorigin="anonymous"
/>
</head>
<body>
<h1>Add Student</h1>
<div style="width:50%; margin:auto;">
<form method="post">
{{form.as_p}}
<!-- <button class = "btn btn-primary" type = "submit"></button> -->
<input class="btn btn-primary" type="submit" value="Submit">
</form>
</div>
<script
src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"
></script>
<script
src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"
></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"
></script>
</body>
</html>
add_student() view ফাংশনের জন্য একটি URL-প্যাটার্ন এ্যাড করে ফেলি-
Code:: 6.8.4
first_app/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('home/', views.home, name="homepage"),
path('delete/<int:roll>', views.delete_student, name="delete_student"),
path('add/', views.add_student, name="add_student"),
]
এখন প্রজেক্টটি রান করে http://127.0.0.1:8000/add/ URL-এ গেলে ব্রাউজারে আমাদের তৈরি জ্যাংগো মডেল-ফর্ম টি দেখতে পাব-