Django

⌘K
  1. Home
  2. Django
  3. Django তে কিভাবে কাজ করতে...
  4. Form ফর্ম
  5. 03.forms.Form এ widget()

03.forms.Form এ widget()

widget প্যারামিটার ব্যবহার করে ফিল্ডগুলির ইনপুটের ধরণ কাস্টমাইজ করতে পারেন

forms.Form ব্যবহার করে একটি ফর্ম তৈরি করার সময়, আপনি widget প্যারামিটার ব্যবহার করে ফিল্ডগুলির ইনপুটের ধরণ কাস্টমাইজ করতে পারেন। ইনপুট ধরনের পরিবর্তে বিভিন্ন ধরণের উইজেট ব্যবহার করতে এটি ব্যবহার করা হয়।

নিচে একটি উদাহরণ দেওয়া হয়েছে এমন একটি ফর্মের জন্য যেখানে নাম এবং ইমেইল ফিল্ডগুলির জন্য বিশেষ উইজেট ব্যবহার হয়েছে:

# forms.py

from django import forms

class CustomWidgetForm(forms.Form):
    name = forms.CharField(label='নাম', max_length=100, widget=forms.TextInput(attrs={'placeholder': 'আপনার নাম'}))
    email = forms.EmailField(label='ইমেইল', widget=forms.EmailInput(attrs={'placeholder': 'আপনার ইমেইল'}))

উপরের উদাহরণে, forms.TextInput এবং forms.EmailInput উইজেটগুলি ব্যবহার হয়েছে যারা নাম এবং ইমেইল ফিল্ডগুলির জন্য কাস্টম উইজেট। attrs প্যারামিটারটি ব্যবহার করে আপনি ইনপুটের HTML এট্রিবিউট যোগ করতে পারেন, যেমন প্লেসহোল্ডার এট্রিবিউট।

এবার এই ফর্মটি রেন্ডার করার জন্য একটি ভিউ তৈরি করতে পারেন:

# views.py

from django.shortcuts import render
from .forms import CustomWidgetForm

def custom_widget_form_view(request):
    if request.method == 'POST':
        form = CustomWidgetForm(request.POST)
        if form.is_valid():
            # ফর্ম ডাটা প্রসেস করুন
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            # এই ডাটার সাথে কিছু করতে চাইলে তার কোড লিখুন
        else:
            # ফর্ম ভুল তথ্য দেখাতে চাইলে এখানে কোড লিখুন
            pass
    else:
        form = CustomWidgetForm()

    return render(request, 'custom_widget_form_template.html', {'form': form})

এবার custom_widget_form_template.html ফাইলটি তৈরি করুন:

<!-- custom_widget_form_template.html -->

<!DOCTYPE html>
<html>
<head>
    <title>কাস্টম উইজেট ফর্ম</title>
</head>
<body>

<h2>কাস্টম উইজেট ফর্ম</h2>

<form method="post" action="{% url 'custom_widget_form_view' %}">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">সাবমিট</button>
</form>

</body>
</html>

How can we help?