نموذج في Django
جزء من قسم النماذج في رحلة Django على Coddy. الدرس 5 من 20.
أرسل النموذج من دون تاريخ، وسيتعطل الموقع: لا يستطيع Django تحويل نص فارغ إلى تاريخ. وسيتطلب التحقق من كل حقل يدويًا كتابة شيفرة لكل حقل ولكل خطأ.
يصف نموذج Django الحقول مرة واحدة في forms.py، ويعرف كل حقل ما يقبله. نموذج حجز في مطعم:
from django import forms
class BookingForm(forms.Form):
name = forms.CharField(max_length=50)
day = forms.DateField()
guests = forms.IntegerField()كل حقل مطلوب ما لم تحدد خلاف ذلك، ويزيل CharField المسافات أولًا، لذا يُعد الاسم الذي يتكون من مسافات فقط فارغًا.
في العرض، أنشئ النموذج من البيانات التي وصلت واستدعِ is_valid(): فهو يتحقق من كل حقل ويُرجع True أو False. ثم يحتوي form.cleaned_data على القيم المحوّلة إلى Python، لذا فإن cleaned_data["day"] هي قيمة من النوع datetime.date وليست نصًا:
form = BookingForm(request.POST)
if form.is_valid():
day = form.cleaned_data["day"]التحدي
سهلاجعل نموذج Django يتحقق من الحدث الجديد.
- في
events/forms.py، اكتبEventForm: اجعلtitleوplaceنصّين بطول يصل إلى 100 حرف، وdateتاريخًا. - في
new_event، أنشئ النموذج منrequest.POST. إذا كان صالحًا، فأنشئ الحدث منform.cleaned_dataوأعِد التوجيه إليه. وإلا، فعيّنerrorإلىPlease check the form.
أرسل النموذج من دون تاريخ: سترى Please check the form.
جرّب بنفسك
from django import forms
جميع دروس النماذج
2نماذج Django
نموذج في Djangoعرض نموذجتدرّب بنفسك: Playground لـ Django