自动填充一些字段Openerp

时间:2014-10-06 15:04:34

标签: openerp openerp-7

您好我是OpenERP7 / Odoo7的新手,并没有真正了解如何做到这一点。

我的自定义产品模块中有现有记录,我想通过仅输入我的prodcode字段并想要自动填充某些字段来检索该记录。

我在网上看过很多,Odoo论坛,但找不到答案,或者我不理解。关于我的问题,我已经post了 所以,如果有人可以给我一个如何实现这个目标的答案,或者指导我一个易于理解的解释。 那会很棒。

这是我已经完成的

PYTHON ---

class test_product(osv.Model):
    _name = "test.product"

    def name_change(self, cr, uid, ids, test_prodcode_id, prodname, desc, price, context=None):
        return {
        'value': { 
            'prodname': 'Plastic Ware',
            'desc': 'Affordable Plastic Ware',
            'price': 100.00,
        }
    }

    _columns = {
        'test_prodcode_id': fields.many2one('test.prodcode', 'Code'),   
        'prodname': fields.char('Name', size=32),        
        'desc': fields.char('Description', size=32),
        'price': fields.float('Price',),
    }

class test_prodcode(osv.Model):
    _name = "test.prodcode"

    _columns = {        
        'name': fields.char('Product Code', size=32),
    }

XML ----

<record id="test_product_form_view" model="ir.ui.view">
    <field name="name">test.product.form.vew</field>
    <field name="model">test.product</field>
    <field name="type">form</field>
    <field name="arch" type="xml">
        <form string="Product" version="7.0">
            <sheet>
                <field name="test_prodcode_id" on_change="name_change(test_prodcode_id,prodname,desc,price)"/>
                  <field name="prodname"/>
                  <field name="desc"/>
                  <field name="price"/>
            </sheet>
        </form>
    </field>
</record>

2 个答案:

答案 0 :(得分:1)

是的,我也遇到过这个问题。

我已经找到了解决方案。通过执行

可以实现自动填充
_defaults = {}

,或者,如在您的示例中,通过执行

class test_product(osv.Model):
_columns = {
        'test_prodcode_id': fields.many2one('test.prodcode', 'Code'),   
        'prodname': fields.char('Name', size=32),        
        'desc': fields.char('Description', size=32),
        'price': fields.float('Price',),
    }

_defaults: {
 'test_prodcode_id' : 'defaults_prodcode',
}

您还可以指定一个返回默认值的函数。

答案 1 :(得分:1)

  • 我有解决方案,但它不是你想要的,但你可以这样做 这也是。
  • 您可以使用related自动填充其他字段。假设你设置 product_id它会自动填写 product_name,desc 价格 你的product_id
  • 您还可以在此处查看示例: https://stackoverflow.com/a/42453539/5161074