Menu
CoddyTech

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

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

يقبل المجلس فعاليات مؤرخة بالعام الماضي. تعرف القواعد المضمنة الأنواع والحدود، لا موقعك. تُكتب قاعدة خاصة بك لحقل واحد في طريقة اسمها 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 إلى رفض الحقل، وتظهر الرسالة أسفله.

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

challenge icon

التحدي

سهل

في EventForm، ارفض تاريخًا يسبق اليوم باستخدام الرسالة 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