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