Menu
CoddyTech

التحقق من حقل واحد

جزء من قسم النماذج في رحلة Django على Coddy. الدرس 10 من 20.

يقبل النموذج حدثًا مؤرخًا في العام الماضي. تعرف الفحوصات المضمنة في Django الأنواع والحدود، لا قواعد موقعك. توضع القاعدة الخاصة بحقل واحد في طريقة اسمها clean_ متبوعة باسم الحقل. نموذج تسجيل يحتفظ بالاسم admin للموظفين:

class SignupForm(forms.Form):
    username = forms.CharField(max_length=30)

    def clean_username(self):
        username = self.cleaned_data["username"]
        if username.lower() == "admin":
            raise forms.ValidationError("That name is reserved.")
        return username

تستدعيها is_valid() بعد الفحوصات الخاصة بالحقل، لذا تكون القيمة قد حُوّلت بالفعل: يعطي DateField تاريخًا. يؤدي رفع forms.ValidationError إلى رفض الحقل، وتظهر الرسالة بجواره.

يجب أن تعيد الطريقة القيمة: فما تعيده يُضاف إلى cleaned_data. من دون return، تصبح القيمة None.

challenge icon

التحدي

سهل

في EventForm، ارفض تاريخًا يسبق اليوم باستخدام الرسالة The date cannot be in the past. لا بأس بحدث تاريخه اليوم.

أضف حدثًا تاريخه أمس، واكتبه بهذا التنسيق: 2026-10-30: ستظهر لك الرسالة The date cannot be in the past.

جرّب بنفسك

from django import forms


class EventForm(forms.Form):
    title = forms.CharField(max_length=100)
    date = forms.DateField()
    place = forms.CharField(max_length=100)
    description = forms.CharField(widget=forms.Textarea, required=False)
    capacity = forms.IntegerField(min_value=1)

جميع دروس النماذج

تدرّب بنفسك: Playground لـ Django