التحقق من حقل واحد
جزء من قسم النماذج في رحلة 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.
التحدي
سهلفي 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)
جميع دروس النماذج
2نماذج Django
نموذج في Djangoعرض نموذجتدرّب بنفسك: Playground لـ Django