是否可以在Django的json字段中使用F递增值?
我有一个包含json字段的对象,并且其中有一些键。
是否可以在使用F的json中增加键值?
谢谢大家。
credits = Company.objects.filter().first()
credits.meta_data = F('meta_data')['credits'] + 1
credits.save()
答案 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} }中的对象。