Django Check constrain предотвращает сохранение строки в json fileld
Как предотвратить сохранение строкового литерала в поле JSON?
class MyModel(models.Model):
settings = JSONField("Additional settings", default=dict, blank=True)
Теперь я могу сделать это
inst = MyModel.objects.get()
inst.settings = 'some string'
inst.save()
но некоторые логины ожидают dict.
теперь мне нужно проверить dict в коде.
Я добавляю простое ограничение
class Meta:
ordering = ['-updated_at']
constraints = [
CheckConstraint(
check=~(Q(settings='') | Q(settings='{}')),
name='reduce_sats_process_check_settings_must_be_json_object'
)
]
но это не предотвращает сохранение всех вариантов строк.