Django highly suggests not to use null=True for CharField and TextField string-based fields in order not to have two possible values for \"no d
Just wanted to add that you should avoid setting default values on JSONField. I just made a schoolboy error by setting it to {}. The result is that new objects will receive the last object's value if it was not explicitly set. Its a Python behaviour inherent in the JSONField, which I forgot to consider.