Menu
CoddyTech

기본값과 빈 필드

Coddy Django 여정의 모델과 관리자 섹션에 포함된 레슨. 23개 중 3번째.

읽었는지 여부를 말하지 않고 책을 저장하면 데이터베이스가 거부합니다: 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 방식입니다.

Run을 누른 다음 Shell 탭에서 Book.objects.create(title="Emma", author="Jane Austen", year=1815, price="7.50")를 입력하고 Data 탭을 여세요.

직접 해보기

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

모델과 관리자의 모든 레슨

직접 연습해 보세요: Django 플레이그라운드