Django нулевое значение в столбце по умолчанию нарушает ограничение not-null
У меня есть текущая таблица, с состоянием в виде Jsonfield с пустым dict по умолчанию
class Channel(models.Model):
agent = models.ForeignKey(Agent, on_delete=models.SET_NULL, null=True, blank=True)
organization = models.ForeignKey(Organization, on_delete=models.CASCADE)
type = models.CharField(choices=ChannelType.choices, max_length=64, default=ChannelType.WHATSAPP)
settings = models.JSONField(blank=True, default=dict)
state = models.JSONField(blank=True, default=dict)
disabled = ArrayField(models.CharField(), blank=True, default=list)
Но когда я пытаюсь создать объект Channel Object
Channel.objects.create(type=ChannelType.WHATSAPP, settings=serializer.validated_data, organization=user_utils.get_user_organization(request.user))
Django выдает эту ошибку
django.db.utils.IntegrityError: null value in column "state" of relation "core_channel" violates not-null constraint
Failing row contains (4, WHATSAPP, {"session_id": "611a09fd-ccfd-4683-ba92-4717c9688193"},null, {}, null, 1).
Почему? По умолчанию не следует делать значением по умолчанию {}
? Почему работа с полем disabled
?