`blank` is a Django model-field option for form-facing requiredness. `blank=False` is the default, so Django Admin and web forms require a value. Set `blank=True` when those interfaces may accept an empty value. section 4.8.1
Do not confuse `blank` with `null`. `null` controls whether the database column can store SQL `NULL`; `blank` controls whether Django Admin and web forms permit an empty value. Django keeps database constraints and model validation separate on purpose. section 4.8.1 section 4.7.1
Choose the options according to where absence is allowed:
- Use the default `blank=False` when a user must supply the field through Django Admin or a web form. section 4.8.1
- Use `blank=True` when the Admin UI or forms should allow an empty relationship or field value. section 4.7.1
- Use `blank=True, null=False` only when application code fills in a value after form submission but before saving; this combination is unusual. section 4.8.1
Adding a field to existing rows
Adding `famous_for = models.CharField(max_length=50)` makes the database require a value because `null=False` is the default. Existing Promoter rows therefore need a migration-time value; a one-off default of `""` can populate them. An empty string is still a value to the database, unlike `NULL`. section 10.1.2 section 4.8.1
