使用Signals为每个用户更新JSON字段

时间:2019-02-27 17:22:06

标签: django postgresql django-jsonfield

我目前在我的用户模型上有一个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然后重新查询各个用户以更新该字段的情况下,实现此目标的最佳方法是什么?

0 个答案:

没有答案