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?

Вернуться на верх