null=True
blank=True
default = 0
What's the difference? When do you use what?
In Very simple words, Blank is different than null. null is purely database-related, whereas blank is validation-related(required in form). If null=True , Django will store empty values as NULL in the database . If a field has blank=True , form validation will allow entry of an empty value .
default: The default value for the field. This can be a value or a callable object, in which case the object will be called every time a new record is created. null: If True , Django will store blank values as NULL in the database for fields where this is appropriate (a CharField will instead store an empty string).
If a string-based field has null=True , that means it has two possible values for “no data”: NULL , and the empty string. In most cases, it's redundant to have two possible values for “no data;” the Django convention is to use the empty string, not NULL .
default=None sets the field to None if no other value is given.
Direct from Django model field reference:
Field.null
If
True
, Django will store empty values asNULL
in the database. Default isFalse
.Note that empty string values will always get stored as empty strings, not as
NULL
. Only usenull=True
for non-string fields such as integers, booleans and dates. For both types of fields, you will also need to setblank=True
if you wish to permit empty values in forms, as thenull
parameter only affects database storage (seeblank
).Avoid using
null
on string-based fields such asCharField
andTextField
unless you have an excellent reason. If a string-based field hasnull=True
, that means it has two possible values for “no data”: NULL, and the empty string. In most cases, it’s redundant to have two possible values for “no data;” Django convention is to use the empty string, notNULL
.
Field.blank
If
True
, the field is allowed to be blank. Default isFalse
.Note that this is different than
null
.null
is purely database-related, whereasblank
is validation-related. If a field hasblank=True
, validation on Django’s admin site will allow entry of an empty value. If a field hasblank=False
, the field will be required.
Field.default
The default value for the field. This can be a value or a callable object. If callable it will be called every time a new object is created.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With