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.
Görev
KolayBook için isteğe bağlı alanları isteğe bağlı hâle getir:
is_readbaşlangıçtaFalsedeğerini alır.finishedboş olabilir: tamamlanmamış bir kitabın tarihi yoktur.- Uzun metinler için uzunluk sınırı olmayan bir
summaryalanı ekle; boş bırakılabilir veNULLolarak 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
1İlk Modeliniz
İlk ModelinizAlan TürleriKendi başına pratik yap: Django playground