是否可以在Django的json字段中使用F递增值?

时间:2019-02-17 06:09:49

标签: python django python-3.x django-views

是否可以在Django的json字段中使用F递增值?

我有一个包含json字段的对象,并且其中有一些键。

是否可以在使用F的json中增加键值?

谢谢大家。

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

1 个答案:

答案 0 :(得分:1)

不确定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字段,也不能保证您得到正确格式的{{1} }中的对象。