Установите для Django JSONField значение JSON нулевой синглтон с помощью Django ORM - PullRequest
0 голосов
/ 19 июня 2020

Используя Django JSONField на PostgreSQL, скажем, у меня есть следующая модель

class Foo(models.Model):
    bar = models.JSONField(null=False)

, и я хочу установить в строке bar=null, где null - это одиночный JSON нулевое значение (отличается от базы данных NULL значение).


Я могу получить его с помощью необработанного SQL запроса:

UPDATE "myapp_foo"
SET "bar" = 'null'::jsonb
WHERE "myapp_foo"."id" = <relevant_id>

Ближайшие вещи Я могу сделать в ORM

Foo.objects.filter(id=<relevant_id>).update(bar=None)

, но Django интерпретирует это как базу данных NULL, и я получаю следующую ошибку:

null value in column "bar" violates not-null constraint

или

Foo.objects.filter(id=<relevant_id>).update(bar="null")

но Django (правильно) интерпретирует это как строку JSON "null"


Я что-то упускаю или это пробел в функциональности ORM?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...