Model Fields Blank and Empty

blank=True, null=True

pattern(DB) null(Form) blankmeaning
FalseFalseThis field is required when submitting from a form, and the value stored in the database must not be empty
TrueTrueThis field is not required when submitting from a form, it doesn't have to be in the value stored in the database.
FalseTrueThis field is not required when submitting from a form, but the value stored in the database must not be empty.
TrueFalseThis field must be entered when filling out the form, but the database value can be empty.

Conclusion:

  • ① and ② is ordinary usage
  • ③ is for str field.
    • string values such as CharField and TextField, empty values are stored as empty strings instead of null.
    • For this reason, only blank = True can be specified for fields that handle character strings.
    • It means We want to store "" to DB.
  • ④ is weird.
    • since There is a something values definitely from Form, DB never be going to be null.