← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 740202] Re: passing int to write method of stock.move gives "Field '0' does not exist in object 'browse_record(stock.move, ..."

 

So, the statement at
http://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html#osv.osv.osv.write
"Param ids: object id or list of object ids to update" has to be
considered wrong?

So, any other module can't write a stock.move passing its id?

See for instance mrp_prodlot_autosplit: http://bazaar.launchpad.net
/~openerp-commiter/openobject-
addons/extra-6.0/view/5310/mrp_prodlot_autosplit/stock.py#L109 that is
behaving right according to ORM specifications

** Changed in: openobject-addons
       Status: Invalid => New

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/740202

Title:
  passing int to write method of stock.move gives "Field '0' does not
  exist in object 'browse_record(stock.move,..."

Status in OpenERP Modules (addons):
  New

Bug description:
  - Call the write method of stock.move passing ids as INT (instead of LIST) with user != admin
  - Get
    File "server/bin/addons/stock/stock.py", line 1616, in write
      for move in self.browse(cr, uid, ids, context=context):
    File "server/bin/osv/orm.py", line 189, in __getitem__
      name, self))
  KeyError: "Field '0' does not exist in object 'browse_record(stock.move, 422)'"

  Suggested FIX:
  After line 1614 ( http://bazaar.launchpad.net/~openerp/openobject-addons/trunk/view/4567/stock/stock.py#L1611 ) add

              if isinstance(ids, (int, long)):
                  ids = [ids]



References