Можно ли увеличить значение с помощью F в поле JSON в Django? - PullRequest
0 голосов
/ 17 февраля 2019

Можно ли увеличить значение с помощью F в поле json в django?

У меня есть объект, который содержит поле json, и у меня есть несколько ключей.

Этоможно увеличить значение ключа внутри используемого json F?

Спасибо за все.

credits = Company.objects.filter().first()
credits.meta_data = F('meta_data')['credits'] + 1
credits.save()

1 Ответ

0 голосов
/ 17 февраля 2019

Не уверен, что такое F, но, учитывая, что meta_data является действительным JSON объектом, вы можете манипулировать им с помощью библиотеки json, например:

a = json.loads("{\"a\":1}")
#or a = json.loads(credits.meta_data)
print(a)
a["a"] = a["a"]+1
print(a)

{'a': 1}
{'a': 2}

Вы хотитебудьте осторожны (обработайте исключения и убедитесь, что вы сохраняете действительное содержимое json в это поле), поскольку даже если вы используете специфичное для postgresql поле json, оно не гарантирует, что вы получите отформатированные json объекты из него.

...