首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >期望的单例: stock.move - Odoo v9社区

期望的单例: stock.move - Odoo v9社区
EN

Stack Overflow用户
提问于 2017-03-06 05:22:22
回答 1查看 502关注 0票数 0

我使用以下方法从fleet_vehicle_log_services创建一个stock.picking

代码语言:javascript
复制
@api.multi
def create_picking(self):
    self.ensure_one()
    vals = {
        'move_lines': self.move_lines.id,
        'origin': self.name
    }
    picking = self.env['stock.picking'].create(vals)
    return picking

fields上声明如下:

代码语言:javascript
复制
move_lines = fields.One2many('stock.move', 'picking_id', string="Stock Moves", copy=True)

我的观点是:

代码语言:javascript
复制
    <group string="Datos del picking">
       <button name="create_picking" string="Crear Picking" type="object" class="oe_highlight"/>
                        <tree>
                            <field name="move_lines" string="Lineas"/>
                            <field name="state" invisible="1"/>
                        </tree>
                </group>

当我单击create the picking时,它会抛出以下内容:

代码语言:javascript
复制
Traceback (most recent call last):
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 648, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 685, in dispatch
result = self._call_function(**self.params)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 321, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 314, in checked_call
result = self.endpoint(*a, **kw)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 964, in __call__
return self.method(*args, **kw)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/http.py", line 514, in response_wrap
response = f(*args, **kw)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/web/controllers/main.py", line 892, in call_button
action = self._call_kw(model, method, args, {})
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/addons/web/controllers/main.py", line 880, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/api.py", line 381, in old_api
result = method(recs, *args, **kwargs)
File "/home/kristian/odoov9/danisan/fleet_stock/models/fleet_vehicle_services.py", line 215, in create_picking
'move_lines': self.move_lines.id,
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/fields.py", line 2030, in __get__
return record.ensure_one()._ids[0]
File "/home/kristian/odoov9/odoo-9.0c-20161106/openerp/models.py", line 5420, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: stock.move(45, 68)

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-06 17:42:22

One2many字段需要特殊命令才能插入。在您的案例中:

代码语言:javascript
复制
 vals = {
        'move_lines': [(6, 0, self.move_lines.ids)],
        'origin': self.name
    }

有关更多解释,请阅读this post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42614194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档