【问题标题】:Autofill some fields Openerp自动填充一些字段 Openerp
【发布时间】:2014-10-06 15:04:34
【问题描述】:

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

我的自定义产品模块中有一条现有记录,我想通过仅输入我的产品代码字段来检索该记录并希望自动填充一些字段。

我在互联网、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>

【问题讨论】:

  • 这里有专家帮助我实现这一目标吗?
  • 大家好,有没有人可以帮我解决这个问题,直到现在我无法让它自动填充某些字段。

标签: openerp openerp-7


【解决方案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',
}

您还可以分配一个返回默认值的函数。

【讨论】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2016-12-22
      相关资源
      最近更新 更多