Коллеги, нужно получить следующий запрос:
UPDATE tab SET h = h || ('c' => '3'); , где h тип json из Postgresql.
Попытался
class F(models.F):
def push(self, value):
keyval = ['\'%s\' => \'%s\'' % (key, val) for key, val in value.items()]
value = '(' + ', '.join(keyval) + ')'
return self._combine(value, '||', False)
Но выходит следующий запрос:
UPDATE tab SET **h = h || '(''c'' => ''3'')'; т.е. экранирование кавычек (защита от sql injection).
Как побороть?