您好我是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>
答案 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
。