Odoo获取特定视图中使用的另一个模型字段

时间:2017-06-01 09:54:49

标签: inheritance view module model openerp

我正在开发Odoo 10并开发一个模块来为库存模块添加新的功能,但是当我在一个好的商品进入时,我面临两个问题(列表转移到wharehouse的产品):

- 首先,我想通过在" Operations"中添加一个新的计算字段来扩展View0(stock_picking_views.xml,record:view_picking_form)。树视图。但是当我尝试添加这个字段时,Odoo告诉我它不存在:

  

文件" /usr/local/lib/python2.7/dist-packages/odoo-10.0.post20170508-py2.7.egg/odoo/models.py",第1083行,在_validate_fields中       引发ValidationError("%s \ n \ n%s"%(_("验证约束时出错"),tools.ustr(e)))   ParseError:"验证约束时出错

     

字段computed_field不存在

class MyClass(models.Model):
    _inherit = ['stock.picking']

    computed_field = fields.Float(string='my field', default=0.0, compute='_computefield')

    @api.depends('pack_operation_ids.fieldA', 'pack_operation_ids.fieldB')
    def _computefield(self):
        self.computed_field = self.pack_operation_ids.fieldA - self.pack_operation_ids.fieldB

我不明白,因为我能够在View0的另一个页面中添加computed_field,它显示得很好并且每次其他值更改时都会计算。关于我做错了什么的任何想法?我是Odoo的新手,现在可能还有很多我想念的东西。

- 第二个问题,我创建了一个按钮,在View0上方打开一个新窗口。我想在View0上显示一些字段。但我不知道如何操作,因为View0模型(stock.picking)中没有明确定义这些View0字段。它们都是从stock.pack.operation放入Many2one字段,并使用stock.picking模型中的函数访问。

我的第二个模型也继承自stock.picking:

class MyModel2(models.Model):
    _name = 'stock.picking.model2'
    _inherit = ['stock.picking']

对这些问题的帮助会非常有用,如果我需要准确一些,不要犹豫告诉我。

由于

2 个答案:

答案 0 :(得分:0)

问题的第1部分:

听起来您正在尝试将新字段添加到“操作”树视图中。

您尝试的问题是您已将computed_field添加到stock.picking模块中。在pack_operation_product_ids(操作树视图)中添加字段后,模型为stock.pack.operation。如果computed_field对该模型不可用,那么Odoo会给出您收到的错误。

问题的第2部分:

我需要查看有关您究竟要做什么的更多详细信息。

  • 为什么要创建一个全新的模型stock.picking.model2
  • 您想在向导中显示哪些字段(弹出窗体视图)?

答案 1 :(得分:0)

非常感谢您回答travisw,

第1部分 我明白知道,这是合乎逻辑的,但我没有看到它。我想我只需要将该字段添加到stock.pack.operation表中,谢谢:)

第2部分 我想要一个带有新设计的向导。如果我没有错(请告诉我,如果是这样),如果我不创建新模型,我必须从活动视图继承并从中进行修改,这不是我想要的

从活动视图创建向导我唯一需要的是与商品条目相关的产品(product_id,qty_done,product_qty)。

我做了一些额外的研究,发现可以通过检索上下文的活动视图ID然后找到一种检索好字段的方法来完成它吗?在这种情况下是否可能,你知道怎么做?