我目前在我的用户模型上有一个JSONfield,偶尔需要对其进行更新,我设置了一个信号来查询所有用户,然后尝试执行更新:
for u, k in zip(users, pubkeys):
u['value'].append(k)
最初,我以为我可以通过将新的键/值附加到JSONfield来更新字段值,但这似乎是不可能的:
all_users = User.objects.all()
因此,我要遍历所有返回的值,并按1进行1: 并使用主键重新查询用户,并分别进行以下更新:
value_updates = all_users.values("json_data").update(json_data.myDictionary[key]= False)
我高度怀疑我的方法是否最优(并且绝对不能扩展),但是我还没有找到其他方法来实现它。
在不遍历querySet中的所有用户,获取并更新JSONfield然后重新查询各个用户以更新该字段的情况下,实现此目标的最佳方法是什么?