মডিউল ৫-৮ঃ জ্যাংগো ফর্মের Attributes ও Widgets সমূহ

এই মডিউলে জ্যাংগো ফর্মের বিভিন্ন Attributes ও Widgets সমূহ সম্পর্কে জানতে contactForm ফর্ম-ক্লাসটি নিচের মত করে লিখে ফেলি

Code:: 5.8.1 first_app/forms.py

from django import forms

class contactForm(forms.Form):
    name = forms.CharField(label="Full Name : ", help_text="Total length must be within 70 characters", required=False, error_messages={'required': 'Please enter your name.'},widget = forms.Textarea(attrs = {'id' : 'text_area', 'class' : 'class1 class 2', 'placeholder' : 'Enter your name'},))
    email = forms.EmailField(label = "User Email")
    age = forms.CharField(widget=forms.NumberInput)
    check = forms.BooleanField()
    birthday = forms.CharField(widget=forms.DateInput(attrs= {'type' : 'date'}))
    appointment = forms.CharField(widget=forms.DateInput(attrs= {'type' : 'datetime-local'}))
    CHOICES = [('S', 'Small'), ('M', 'Medium'), ('L', 'Large')]
    size = forms.ChoiceField(choices=CHOICES, widget = forms.RadioSelect)
    MEAL = [('P', 'Pepperoni'), ('M', 'Mashroom'), ('B', 'Beef')]
    pizza = forms.MultipleChoiceField(choices=MEAL, widget=forms.CheckboxSelectMultiple)

এখানে জ্যাংগো ফর্মের এ্যাট্রিবিউট হিসেবে widget ব্যবহার করেছি ।

widget হলো HTML ইনপুট ফিল্ডের জ্যাঙ্গগো রিপ্রেজেন্টেশন।

৪ নাম্বার লাইনে widget এর সাহায্যে ফর্ম-ফিল্ড CharField কে textarea-তে রুপান্তর করা হয়েছে, উক্ত ফিল্ডের জন্য ২ টি ক্লাস , 'class1 class 2' , এ্যাড করা হয়েছে ।

view page source - থেকে widget এর কার্যকারিতা যাচাই করে নেই

৯ নাম্বার লাইনে widget ব্যবহার করে CharField appointment কে DateInput ফিল্ডে রুপান্তর করা হয়েছে ।

এখন, প্রজেক্টটি রান করার আগে view Function - DjangoForm থেকে ফাইল ইনপুট হ্যান্ডেল করার কোড রিমুভ করে ফেলি কারন এখন contactForm-এ কোনো ফাইল ইনপুট ফিল্ড নাই

Code:: 5.8.2 first_app/views.py

...
...
...


def DjangoForm(request):
    if request.method == 'POST':
        form = contactForm(request.POST)
        if form.is_valid():
            print(form.cleaned_data)
    else:
        form = contactForm()
    return render(request, './first_app/django_form.html', {'form':form}) 

Last updated