Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

Django - एक ही दृश्य में कई रूपों को संभालना

हमें कभी-कभी एक ही फ़ंक्शन या दृश्य में कई रूपों को संभालने की आवश्यकता होती है। इस लेख में, हम देखेंगे कि एक फ़ंक्शन कैसे लिखना है जो एक ही समय में और एक ही दृश्य में दो रूपों को संभालेगा। यह कई मामलों में आसान है; हम दो से अधिक रूपों को भी संभालेंगे।

एक Django प्रोजेक्ट और एक ऐप बनाएं, मैंने प्रोजेक्ट का नाम "multipleFormHandle" . रखा और ऐप को "formhandlingapp" के रूप में।

कुछ बुनियादी चीज़ें करें जैसे कि settings.py . में ऐप को शामिल करना INSTALLED_APPS और प्रोजेक्ट के url. . में ऐप्लिकेशन का url शामिल करें

अब forms.py . बनाएं ऐप में और ऐप निर्देशिका में "टेम्पलेट्स" फ़ोल्डर। home.htmlजोड़ें टेम्पलेट्स में।

बहु-form_view स्थापित करें पुस्तकालय -

pip install multi_form_view

उदाहरण

अब urls.py . में ऐप का -

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

यहां, हम दृश्य setup सेट करते हैं और हमारे व्यूसेट . का उपयोग करें दृश्य के रूप में। हम व्यूसेट . का उपयोग करने जा रहे हैं यहाँ।

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>

यह हमारा फ्रंटएंड है जहां हम सिंगल फॉर्म एलिमेंट के तहत और सिंगल सबमिट बटन के साथ दो Django फॉर्म प्रस्तुत करते हैं।

मैं शैली नहीं जोड़ूंगा, क्योंकि यहां हम अवधारणा और इसे करने का तरीका सीख रहे हैं।

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 . में हम प्रपत्र डेटा सहेजते हैं और सत्यापित करते हैं कि दोनों प्रपत्र सही हैं या नहीं।

आउटपुट


Django - एक ही दृश्य में कई रूपों को संभालना


  1. डेटा संरचना में एकल सरणी में एकाधिक सूचियां

    ऐरे प्रतिनिधित्व मूल रूप से स्थान की बर्बादी है जब यह डेटा संग्रहीत कर रहा है जो समय के साथ बदल जाएगा। कुछ डेटा स्टोर करने के लिए, हम कुछ जगह आवंटित करते हैं जो एक सरणी में एकाधिक मानों को स्टोर करने के लिए पर्याप्त है। मान लीजिए कि हम सरणी के आकार को बढ़ाने के लिए सरणी दोहरीकरण मानदंड का उपयोग करते

  1. एक पंडों के डेटाफ़्रेम में एकाधिक CSV फ़ाइलों को कैसे मर्ज करें?

    एक से अधिक CSV फ़ाइलों को एक पांडा डेटाफ़्रेम में मर्ज करने के लिए, read_csv का उपयोग करें। सबसे पहले, आवश्यक पंडों पुस्तकालय को आयात करें। यहां। हमने pd को एक उपनाम के रूप में सेट किया है - import pandas as pd अब, मान लें कि निम्नलिखित हमारी CSV फ़ाइलें हैं - Sales1.csv Sales2.csv हमने पथ

  1. पंडों (Matplotlib) का उपयोग करके एक ही प्लॉट में कई समय-श्रृंखला डेटाफ़्रेम प्लॉट करें

    पंडों का उपयोग करके एक ही प्लॉट में कई समय-श्रृंखला डेटा फ़्रेमों को प्लॉट करने के लिए, हम निम्नलिखित कदम उठा सकते हैं - आकृति का आकार सेट करें और सबप्लॉट के बीच और आसपास पैडिंग समायोजित करें। समय श्रृंखला के साथ एक पांडा डेटा फ़्रेम बनाएं। प्लॉट के लिए टाइम सीरीज़ इंडेक्स सेट करें। प्लॉट पर रुपये