القيم الافتراضية والحقول الفارغة
جزء من قسم النماذج ولوحة الإدارة في رحلة Django على Coddy. الدرس 3 من 23.
احفظ كتابًا من دون تحديد ما إذا كنت قد قرأته، فترفض قاعدة البيانات ذلك: NOT NULL constraint failed. كل حقل مطلوب إلى أن تحدد خلاف ذلك، باستخدام أحد الخيارات الثلاثة:
has_subtitles = models.BooleanField(default=True)
rating = models.DecimalField(max_digits=3, decimal_places=1, null=True, blank=True)
tagline = models.CharField(max_length=200, blank=True)default هي القيمة التي يحصل عليها الصف الجديد عندما لا تحدد قيمة. يتيح null=True للعمود تخزين NULL، التي يقرأها Python على أنها None. يتيح blank=True للنماذج ولوحة الإدارة قبول الحقل فارغًا.
يحتاج الرقم أو التاريخ الذي قد لا تعرفه إلى كلٍّ من null=True وblank=True. أما النص فيحتاج إلى blank=True فقط: يُخزَّن النص الفارغ على هيئة ""، واستخدام null سيؤدي إلى وجود نوعين من القيم الفارغة. TextField هو نص بلا حد أقصى للطول، ويُستخدم لشيء طويل مثل مراجعة.
التحدي
سهلاجعل الأجزاء الاختيارية من Book اختيارية:
- تبدأ
is_readبالقيمةFalse. - يمكن أن يكون
finishedفارغًا: فالكتاب غير المكتمل ليس له تاريخ. - حقل جديد
summary: نص طويل بلا حد للطول، ويمكن أن يكون فارغًا؛ وهذه هي طريقة Django للتعامل مع النصوص.
اضغط على تشغيل، ثم اكتب في علامة تبويب Shell Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") وافتح علامة تبويب البيانات.
جرّب بنفسك
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=200)
author = models.CharField(max_length=100)
year = models.IntegerField()
price = models.DecimalField(max_digits=6, decimal_places=2)
is_read = models.BooleanField()
finished = models.DateField()
جميع دروس النماذج ولوحة الإدارة
1نموذجك الأول
نموذجك الأولأنواع الحقول2الاستعلام باستخدام ORM
إنشاء الصفوفAll وGetالتصفية وعمليات البحثعدّ الصفوفترتيب الصفوفالتحديث والحذفتدرّب بنفسك: Playground لـ Django