我有一个ArrayField()
的模型,并希望为其附加一个值。
我能做到:
self.my_array_field.append("foobar")
然而,由于竞争条件,这经常会失败。
所以我尝试过这样的事情:
self.my_array_field = F('my_array_field') + "foobar"
这样:
self.my_array_field = F('my_array_field').append("foobar")
和此:
self.my_array_field = Func(F('my_array_field'), Value("foobar"), function='array_append')
不幸的是,所有这些都彻底失败了。
你有什么建议我在django中实现这个PostGreSQL语句?
UPDATE my_model SET my_array_field = array_append(my_array_field, "foobar")
请注意,此声明也是等效的:
UPDATE my_model SET my_array_field = my_array_field || "foobar"
答案 0 :(得分:1)
实际上,这个解决方案运行良好:
self.my_array_field = Func(F('my_array_field'), Value("foobar"), function='array_append')