Skip to Content
Menu
This question has been flagged
1 Reply
4781 Views

Hi, my name Heru.

i have problems.

i will get value when hit button 'save', but it's not work.

I make like this,

file .py :

class manifest_delivery(osv.osv):
    _columns = {
                        'name': fields.char('Reference', required=True, size=64, readonly=True, states={'draft': [('readonly', False)]}),
                        }
    def create(self, cr, uid, vals, context=None):
        sp = self.pool.get("stock.picking").browse(cr, uid, vals['manifest_id'])
        print "> > > > > > > > > > > > > > > > > > > > > > > >",sp.origin
        return super(manifest_delivery, self).create(cr, uid, vals, context=context)


class stock_picking(osv.osv):
    _inherit = 'stock.picking'
    _columns = {
                        'manifest_id': fields.many2one('manifest.delivery', 'Manifest'),
                        'origin': fields.char('Source Document', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, help="Reference of the document", select=True),
                        }


when i hit button 'save', system show message error :


Traceback (most recent call last):
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 499, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 516, in dispatch
result = self._call_function(**self.params)
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 282, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/heru/odoo/openerp-8.0/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 279, in checked_call
return self.endpoint(*a, **kw)
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 732, in __call__
return self.method(*args, **kw)
File "/home/heru/odoo/openerp-8.0/openerp/http.py", line 375, in response_wrap
response = f(*args, **kw)
File "/home/heru/odoo/addons/DOMINO_CAKE/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/heru/odoo/addons/DOMINO_CAKE/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/heru/odoo/openerp-8.0/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/heru/odoo/addons/DOMINO_CAKE/siu_manifest_delivery/manifest.py", line 92, in create
sp = self.pool.get("stock.picking").browse(cr, uid, vals['manifest_id.id'])
KeyError: 'manifest_id'

anybody, can tell me what is the solution for my case ?


thanks in advance.

<sorry my language is bad>

Avatar
Discard
Best Answer

Heru,

First of all your implementation is wrong....

1) you have "manifest_id" field in stock_picking not in manifest_delivery, so add a many2one field for stock.picking in manifest_delivery as picking_id, and show in your form view to be selected by the user.

2) then in create, use vals['picking_id'] for your further operation.....as :

sp = self.pool.get("stock.picking").browse(cr, uid, vals['picking_id'])

Hope it Helps!    

Avatar
Discard
Author

wow, it's work. Thank you very much Pawan ...