মডিউল ৫-১১ঃ পাসওয়ার্ড ম্যাচিং প্রজেক্ট

এই মডিউলে আমরা একটি ছোট্র ফর্ম ভ্যালিডেশন প্রজেক্ট করে ফেলব। আমরা আসলে যাচাই করব ফর্মে ২ টা ফিল্ডে ইনপুট দেয়া ডাটা একই কি না ।

first_app/forms.py ফাইলে PasswordValidationForm নামে একটি ফর্ম ক্লাস লিখে ফেলি

Code:: 5.11.1 first_app/forms.py


...
...
...


class PasswordValidationForm(forms.Form):
    name = forms.CharField(widget=forms.TextInput)
    password = forms.CharField(widget=forms.PasswordInput)
    confirm_password = forms.CharField(widget=forms.PasswordInput)
    
    def clean(self):
        cleaned_data = super().clean()
        val_pass = self.cleaned_data['password']
        val_conpass = self.cleaned_data['confirm_password']
        val_name = self.cleaned_data['name']
        if val_conpass != val_pass:
            raise forms.ValidationError("Password doesn't match")
        if len(val_name) < 15:
            raise forms.ValidationError("Name must be at least 15 characters")
  • PasswordValidationForm ফর্ম-ক্লাসে name,password,confirm_password নামে ৩ টি ফিল্ড নেয়া হয়েছে। clean( ) ফাংশনে ফিল্ড ৩ টির ক্লিনড ডাটা যথাক্রমে val_name,val_pass, val_conpass ভেরিয়েবলে নেয়া হয়েছে।

  • চেক করা হয়েছে val_name ও val_pass ফিল্ডের ডেটা অসমান কি না , অসমান হয়ে থাকলে একটি ValidationError রেইজ করা হয়েছে।অনুরুপ কাজ val_name এর জন্যেও করা হয়েছে।

উপরোক্ত ফর্ম নিয়ে কাজ করার জন্য first_app/views.py ফাইলে PasswordValidation নামে একটি ফাংশন লিখে ফেলি

Code:: 5.11.2 first_app/views.py

from django.shortcuts import render
from . forms import contactForm, StudentData,PasswordValidationForm

...
...
...

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

এখন, প্রজেক্ট রান করার আগে first_app/urls.py ফাইলে URL-প্যাটার্ন নিচের মত করে এডিট করে ফেলি

এখন প্রজেক্টটি রান করে পাসোয়ার্ড ফিল্ড ২ টা তে অসমান ইনপুট দিলে ব্রাউজারে নিচের মত করে ইরোর মেসেজ দিবে এবং ফর্মটি সাবমিটেড হবে না।

অবশ্য পাসওয়ার্ড ফিল্ড ২ টিতে একই ইনপুট দিলে এরকম কিছু হবে না বরং ফর্মটি সাক্সেস্ফুলি সাবমিটেড হবে।

Last updated