我正在开发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']
对这些问题的帮助会非常有用,如果我需要准确一些,不要犹豫告诉我。
由于
答案 0 :(得分:0)
听起来您正在尝试将新字段添加到“操作”树视图中。
您尝试的问题是您已将computed_field
添加到stock.picking
模块中。在pack_operation_product_ids
(操作树视图)中添加字段后,模型为stock.pack.operation
。如果computed_field
对该模型不可用,那么Odoo会给出您收到的错误。
我需要查看有关您究竟要做什么的更多详细信息。
stock.picking.model2
?答案 1 :(得分:0)
非常感谢您回答travisw,
第1部分 我明白知道,这是合乎逻辑的,但我没有看到它。我想我只需要将该字段添加到stock.pack.operation表中,谢谢:)
第2部分 我想要一个带有新设计的向导。如果我没有错(请告诉我,如果是这样),如果我不创建新模型,我必须从活动视图继承并从中进行修改,这不是我想要的
从活动视图创建向导我唯一需要的是与商品条目相关的产品(product_id,qty_done,product_qty)。
我做了一些额外的研究,发现可以通过检索上下文的活动视图ID然后找到一种检索好字段的方法来完成它吗?在这种情况下是否可能,你知道怎么做?