এই প্রবন্ধে, আমরা দেখব কিভাবে জ্যাঙ্গো আকারে উইজেট ব্যবহার করতে হয়। উইজেটগুলি ফ্রন্টএন্ডকে আরও ভাল করতে শান্ত সহায়ক হতে পারে। উইজেটগুলি হল এইচটিএমএল উপাদান যা জ্যাঙ্গো ফর্ম, টেক্সটেরিয়া, ইনপুট, পাসওয়ার্ড ইনপুট ইত্যাদি থেকে রেন্ডার করা হয়, সবগুলিই উইজেট৷
প্রথমে একটি জ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করা যাক। আমি "tutorial14" নামে প্রকল্পটি তৈরি করেছি এবং "djangoFormWidget" নামের অ্যাপ .
settings.py-এ অ্যাপ যোগ করুন এবং urls.py. প্রকল্পে অ্যাপের URL অন্তর্ভুক্ত করুন
প্রতিটি মৌলিক ফাইল এবং ফোল্ডার যেমন টেমপ্লেট, home.html, forms.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 অনুরোধগুলি পরিচালনা করেছি৷
৷পোস্টে, আমরা ডেটা সংরক্ষণ করি এবং 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()
এটা যেখানে আমরা আমাদের ফর্ম তৈরি. ফর্মে একটি টেক্সটেরিয়া রেন্ডার করতে আমরা অন্তর্নির্মিত জ্যাঙ্গো ফর্ম উইজেট ব্যবহার করেছি৷
আউটপুট