কম্পিউটার

জ্যাঙ্গো - একক দৃশ্যে একাধিক ফর্ম পরিচালনা করা


আমাদের মাঝে মাঝে একটি ফাংশন বা ভিউতে একাধিক ফর্ম পরিচালনা করতে হয়। এই নিবন্ধে, আমরা দেখব কিভাবে একটি ফাংশন লিখতে হয় যা একই সময়ে এবং একই দৃশ্যে দুটি ফর্ম পরিচালনা করবে। এটা অনেক ক্ষেত্রে সুবিধাজনক; আমরা দুটিরও বেশি ফর্ম পরিচালনা করব৷

একটি জ্যাঙ্গো প্রকল্প এবং একটি অ্যাপ তৈরি করুন, আমি প্রকল্পটির নাম দিয়েছি "multipleFormHandle" এবং অ্যাপটি "formhandlingapp" হিসেবে।

settings.py-এ অ্যাপ সহ কিছু মৌলিক জিনিস করুন INSTALLED_APPS এবং প্রকল্পের url-এ অ্যাপের url অন্তর্ভুক্ত করুন।

এখন forms.py তৈরি করুন অ্যাপে এবং অ্যাপ ডিরেক্টরিতে একটি "টেমপ্লেট" ফোল্ডার। home.html যোগ করুন টেমপ্লেটে।

মাল্টি-ফর্ম_ভিউ ইনস্টল করুন লাইব্রেরি -

pip install multi_form_view

উদাহরণ

এখন urls.py-এ অ্যাপের -

from django.urls import path,include
from . import views
urlpatterns = [
   path('',views.SchoolData.as_view(),name='home'),
]

এখানে, আমরা ভিউ সেট আপ করি এবং আমাদের ভিউসেট ব্যবহার করুন ভিউ হিসাবে। আমরা ভিউসেট ব্যবহার করতে যাচ্ছি এখানে।

models.py-এ −

from django.db import models

# Create your models here.

class StudentData(models.Model):
   name=models.CharField(max_length=100)
   standard=models.CharField(max_length=100)
   section=models.CharField(max_length=100)

class TeachertData(models.Model):
   name=models.CharField(max_length=100)
   ClassTeacherOF=models.CharField(max_length=100)
   Salary=models.CharField(max_length=100)

আমরা দুটি মডেল তৈরি করেছি কারণ আমরা মডেলগুলিতে ফর্ম ডেটা সংরক্ষণ করতে যাচ্ছি৷

forms.py-এ −

from django import forms
from .models import TeachertData,StudentData

class StudentForm(forms.ModelForm):
   class Meta:
      model=StudentData
      fields="__all__"

class TeacherForm(forms.ModelForm):
   class Meta:
      model=TeachertData
      fields="__all__"

এখানে, আমরা মডেল ফর্ম তৈরি করেছি যা আমরা আমাদের ভিউ থেকে ফ্রন্টএন্ডে রেন্ডার করব।

home.html-এ −

<!DOCTYPE html>
<html>
   <head>
      <title>tut</title>
   </head>
   <body>
      <form method="post" enctype="multipart/form-data">
         {% csrf_token %}

         <label><h3>Teacher</h3></label>
         //accessing form 1 from view
         {{ forms.teacher_form.as_p }}
         <label><h3>Student</h3></label>
         //accessing form 2 from view
         {{ forms.student_form.as_p }}
         <input type="submit" value="submit"/>
      </form>
   </body>
</html>

এটি আমাদের ফ্রন্টএন্ড যেখানে আমরা একটি একক ফর্ম উপাদানের অধীনে এবং একটি একক জমা বোতাম সহ দুটি জ্যাঙ্গো ফর্ম রেন্ডার করি৷

আমি শৈলী যোগ করব না, কারণ এখানে আমরা ধারণা এবং এটি করার উপায় শিখছি।

views.py-এ −

from django.shortcuts import render
from .forms import StudentForm,TeacherForm
from django.views.generic.list import ListView
from django.urls import reverse

from multi_form_view import MultiModelFormView
# Create your views here.
class SchoolData(MultiModelFormView):
   form_classes = {
      'student_form' : StudentForm,
      'teacher_form' : TeacherForm,
   }
   template_name = 'home.html'
   def get_success_url(self):
      return reverse('home')
   def forms_valid(self, forms):
      student = forms['student_form'].save(commit=False)
      teacher=forms['teacher_form'].save(commit=False)
      return super(SchoolData, self).forms_valid(forms)

এখানে আমরা একটি ভিউসেট তৈরি করেছি , আমরা রেন্ডার করার জন্য দুটি ফর্ম সংজ্ঞায়িত করি একটি হল ছাত্র ফর্ম৷ এবং অন্যটি হল শিক্ষক ফর্ম . আমরা HTML সংজ্ঞায়িত করেছি যা আমাদের রেন্ডার করতে হবে। get_success_url-এর অধীনে একটি ফর্ম জমা দেওয়া হলে কী করতে হবে তা আমরা সংজ্ঞায়িত করি। form_valid, এ আমরা ফর্ম ডেটা সংরক্ষণ করি এবং উভয় ফর্মই সঠিক কিনা তা যাচাই করি৷

আউটপুট


জ্যাঙ্গো - একক দৃশ্যে একাধিক ফর্ম পরিচালনা করা


  1. কিভাবে HTML ফর্মে একাধিক ফাইল আপলোড করার অনুমতি দেওয়া যায়।

  2. ডেটা স্ট্রাকচারে একটি একক অ্যারেতে একাধিক তালিকা

  3. কিভাবে একটি একক পান্ডাস ডেটাফ্রেমে একাধিক CSV ফাইল মার্জ করবেন?

  4. পান্ডাস (ম্যাটপ্লটলিব) ব্যবহার করে একক প্লটে একাধিক টাইম-সিরিজ ডেটাফ্রেম প্লট করুন