इस लेख में, हम देखेंगे कि Django रूप में विजेट्स का उपयोग कैसे करें। फ़्रंटएंड को बेहतर बनाने के लिए विजेट शांत सहायक हो सकते हैं। विजेट एचटीएमएल तत्व हैं जो Django फॉर्म, टेक्स्टरेरा, इनपुट, पासवर्ड इनपुट इत्यादि से प्रस्तुत किए जाते हैं, सभी विजेट हैं।
सबसे पहले एक Django प्रोजेक्ट और एक ऐप बनाते हैं। मैंने "tutorial14" . नाम से प्रोजेक्ट बनाया है और "djangoFormWidget" . नाम का ऐप ।
ऐप को settings.py . में जोड़ें और प्रोजेक्ट में ऐप्लिकेशन का URL शामिल करें urls.py.
टेम्पलेट्स, home.html, form.py. . जैसी प्रत्येक मूलभूत फ़ाइलें और फ़ोल्डर बनाएं
उदाहरण
ऐप के urls.py . में -
from django.urls import path,include from . import views urlpatterns = [ path('',views.home,name="home") ]
यह दृश्य प्रस्तुत करने के लिए एक मूल URL बनाएगा।
views.py . में -
from django.shortcuts import render from .forms import CommentForm # Create your views here. from django.views.decorators.csrf import csrf_exempt @csrf_exempt def home(request): if request.method=='POST': form=CommentForm(request.POST) if form.is_valid(): form.save() commentform=CommentForm() return render(request,'home.html',{"commentform":commentform})
यहां, हमने अपना फॉर्म आयात किया और इसके POST और GET अनुरोधों को संभाला।
POST में, हम डेटा को सेव करते हैं और GET में, हम फॉर्म को फ्रंटएंड पर भेजते हैं।
models.py . में -
from django.db import models # Create your models here. class CommentModel(models.Model): comment=models.CharField(max_length=500)
यहां हमने एक मॉडल बनाया है जिसे हम अपने फॉर्म में इस्तेमाल करेंगे। फ़ॉर्म का उपयोग करने के लिए हमें इस मॉडल की आवश्यकता है।
home.html . में -
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> {% for fm in commentform %} <form method="post"> {%csrf_token%} {{fm.errors}}<br> {{fm.label}}:{{fm}}<br> {%endfor%} <button type="submit">Submit</button> </form> </body> </html>
यह एक साधारण दृश्यपटल है जहाँ हम अपना फ़ॉर्म प्रस्तुत करते हैं।
forms.py . में -
from django import forms from .models import CommentModel class CommentForm(forms.Form): comment=forms.CharField(widget=forms.Textarea(attrs={'class':'comment','title':'add comment'})) # this is the line which is used for widget, here I added TextArea widget you can see we also assigned class to widget using attrs attribute. def save(self): data=self.data modelRef=CommentModel(comment=data['comment']) modelRef.save()
यह वह जगह है जहाँ हम अपना रूप बनाते हैं। हमने फ़ॉर्म में टेक्स्ट क्षेत्र को रेंडर करने के लिए बिल्ट-इन Django फॉर्म विजेट का उपयोग किया है।
आउटपुट