Djangoにおけるnull=Trueとblank=Trueの違いは何ですか?

By khoanc, at: 2025年7月9日16:01

Estimated Reading Time: __READING_TIME__ minutes

What’s the Difference Between null=True and blank=True in Django?
What’s the Difference Between null=True and blank=True in Django?

ユースケース

 

  • null=True:

    空の値に対してデータベースにNULLを格納する場合に使用します。これは、DateTimeField、ForeignKeyなど、文字列以外のフィールドで一般的に使用されます。
     

  • blank=True:

    Djangoのフォーム空の入力を許可するために使用します。フィールドがオプションであるユーザーインターフェースで必要です。
     

  • 同時使用:

    フィールドが真にオプションの場合、通常は両方を使用します。

 

note = models.CharField(max_length=100, null=True, blank=True)

 

重要な注意事項

 

  • 文字列ベースのフィールド(CharFieldTextField)の場合、Djangoでは以下をお勧めします。

     

    • blank=Trueのみを使用します。

    • null=Trueは避けてください。なぜならDjangoはNULLではなく空文字("")を格納するためです。

    • これにより、NULLと""という2つの「空」の値が混在して混乱することを回避できます。

 

簡単な例

 

class Profile(models.Model):
    bio = models.TextField(null=True, blank=True)  # 
フォームで空のままにすることができ、DBにはNULLが格納されます。
    age = models.IntegerField(null=True, blank=True)  # フォームから省略することもでき、DBでもNULLになります。

 

参照

 

Tag list:

Related

Git Tools

Read more
Python API

Read more

Subscribe

Subscribe to our newsletter and never miss out lastest news.