Menu
CoddyTech

القيم الافتراضية والحقول الفارغة

جزء من قسم النماذج ولوحة الإدارة في رحلة 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 هو نص بلا حد أقصى للطول، ويُستخدم لشيء طويل مثل مراجعة.

challenge icon

التحدي

سهل

اجعل الأجزاء الاختيارية من 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()

جميع دروس النماذج ولوحة الإدارة

تدرّب بنفسك: Playground لـ Django