entity.py
branchstable
changeset 2877 e469f3602858
parent 2875 b7399ef8b3e0
child 2880 bfc8e1831290
child 2920 64322aa83a1d
child 2928 edfdb69df6e8
equal deleted inserted replaced
2876:b6993462ddb9 2877:e469f3602858
   832             assert role
   832             assert role
   833             self._related_cache.pop('%s_%s' % (rtype, role), None)
   833             self._related_cache.pop('%s_%s' % (rtype, role), None)
   834 
   834 
   835     # raw edition utilities ###################################################
   835     # raw edition utilities ###################################################
   836 
   836 
   837     def set_attributes(self, **kwargs):
   837     def set_attributes(self, _cw_unsafe=False, **kwargs):
   838         assert kwargs
   838         assert kwargs
   839         relations = []
   839         relations = []
   840         for key in kwargs:
   840         for key in kwargs:
   841             relations.append('X %s %%(%s)s' % (key, key))
   841             relations.append('X %s %%(%s)s' % (key, key))
   842         # update current local object
   842         # update current local object
   843         self.update(kwargs)
   843         self.update(kwargs)
   844         # and now update the database
   844         # and now update the database
   845         kwargs['x'] = self.eid
   845         kwargs['x'] = self.eid
   846         self.req.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations),
   846         if _cw_unsafe:
   847                          kwargs, 'x')
   847             self.req.unsafe_execute(
       
   848                 'SET %s WHERE X eid %%(x)s' % ','.join(relations), kwargs, 'x')
       
   849         else:
       
   850             self.req.execute('SET %s WHERE X eid %%(x)s' % ','.join(relations),
       
   851                              kwargs, 'x')
   848 
   852 
   849     def delete(self):
   853     def delete(self):
   850         assert self.has_eid(), self.eid
   854         assert self.has_eid(), self.eid
   851         self.req.execute('DELETE %s X WHERE X eid %%(x)s' % self.e_schema,
   855         self.req.execute('DELETE %s X WHERE X eid %%(x)s' % self.e_schema,
   852                          {'x': self.eid})
   856                          {'x': self.eid})