如何在传递给widget的其他字段的Js中获取值? Odoo

时间:2017-08-10 05:10:34

标签: javascript openerp odoo-9 odoo-10

我创建了一个自动填充某些字段的小部件。基本上我正在检查谷歌地图geolocate中的一些值,并根据这些值是什么来填充其他字段。原来我需要检查已经在我的表单中的一个值。目前发生的事情我只得到之前保存的值,如果它改变了,我仍然得到旧值。我的问题是如何实时获得该值?

我的代码是这样的:

var gmap_autocomplete = form_common.AbstractField.extend({

// functions such as start, init, on_ready...
setFields : function (fieldName, fieldValue) {
       var not_vat_payer = this.view.datarecord[this.node.attrs.check_not_vat]);

       // Here I get the value that I want of previous form save
       // for example if value was true, I came here and triggered this
      //widget I will get value true, but if I change it to false
      // I will still get true value of previous save

}

});

我的小部件字段如下所示:

<field name="not_vat2"/>
<field name="autocomplete" class="autoc" widget="gmap_autocomplete" street="street"
                                   city="city" zip="zip" country_id="country_id" lang="lang" invoice_lang="invoice_lang"
                                    property_account_payable_id="property_account_payable_id"
                                    property_account_receivable_id="property_account_receivable_id"
                                    check_not_vat="not_vat2"/>

2 个答案:

答案 0 :(得分:1)

找到非常简单的解决方案: 这将返回视图中的字段值,无论它是否存储在db中。

   this.field_manager.get_field_value('field_name');

答案 1 :(得分:0)

exmple.js

进行更改......

var model_obj = new Model('model.name');
var gmap_autocomplete = form_common.AbstractField.extend({

// functions such as start, init, on_ready...
setFields : function (fieldName, fieldValue) {
       var not_vat_payer = this.view.datarecord[this.node.attrs.check_not_vat]);
       new_val = false;
       model_obj.call('method_name',[new_val]).then(function(result){});

}

});

<强> example.py

@api.model
def method_name(self,new_val):
    //write code for change field value