Menu
CoddyTech

Varsayılanlar ve Boş Alanlar

Coddy'nin Django Journey'sinin Modeller ve Yönetim Paneli bölümünün bir parçası. Ders 3 / 23.

Bir kitabı onu okuyup okumadığınızı belirtmeden kaydederseniz veritabanı işlemi reddeder: NOT NULL constraint failed. Aksi belirtilene kadar her alan zorunludur; bunu belirtmek için üç seçenek vardır:

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, yeni bir satıra herhangi bir değer vermediğinizde atanan değerdir. null=True, sütunun NULL saklamasına izin verir; Python bunu None olarak okur. blank=True, formların ve yönetim arayüzünün alanı boş kabul etmesine izin verir.

Bilmiyor olabileceğiniz bir sayı veya tarih için hem null=True hem de blank=True gerekir. Metin için yalnızca blank=True yeterlidir: boş metin "" olarak saklanır ve null kullanmak iki tür boş değer oluşturur. TextField, inceleme gibi uzun metinler için uzunluk sınırı olmayan metin alanıdır.

challenge icon

Görev

Kolay

Book için isteğe bağlı alanları isteğe bağlı hâle getir:

  • is_read başlangıçta False değerini alır.
  • finished boş olabilir: tamamlanmamış bir kitabın tarihi yoktur.
  • Uzun metinler için uzunluk sınırı olmayan bir summary alanı ekle; boş bırakılabilir ve NULL olarak değil, boş metin olarak saklanır.

“Run” düğmesine bas, ardından Shell sekmesinde Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50") yaz: bir hata yerine <Book: Book object (1)> yazdırır.

Kendin dene

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()

Modeller ve Yönetim Paneli bölümündeki tüm dersler

Kendi başına pratik yap: Django playground