Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openerp 根据另一个字段的值的变化更新Odoo表单中的字段?_Openerp - Fatal编程技术网

Openerp 根据另一个字段的值的变化更新Odoo表单中的字段?

Openerp 根据另一个字段的值的变化更新Odoo表单中的字段?,openerp,Openerp,我在Odoo中开发了一个位置模块,可以在其中添加与该国家相关的国家和州。然后我在另一个模块中调用此模块,我必须这样做:-当选择一个国家时,它应该自动填充状态字段中属于该国家的状态。如何做到这一点?我试过一次更改函数,但没有成功?我将在下面提供我的模型和视图代码 from openerp import models, fields, api class peniel(models.Model): _name='peniel' name = fields.Char(string=

我在Odoo中开发了一个位置模块,可以在其中添加与该国家相关的国家和州。然后我在另一个模块中调用此模块,我必须这样做:-当选择一个国家时,它应该自动填充状态字段中属于该国家的状态。如何做到这一点?我试过一次更改函数,但没有成功?我将在下面提供我的模型和视图代码

from openerp import models, fields, api

class peniel(models.Model):
    _name='peniel'

    name = fields.Char(string="Name")
    product = fields.Many2one('product.template', string='Product', required=True)
    employee = fields.Many2one('hr.employee', string='Employee', required=True)
    customer = fields.Many2one('res.partner', string='Customer', required=True)
    country = fields.Many2one('location', string='Country', required=True)
    state = fields.Many2one('state', string='State', required=True)
    date_d = fields.Date(string="Date Activity")
    comment = fields.Text(string="Comments")



   @api.onchange('country')
   def onchange_country(self):
    if self.country:
        self.state = self.country.state
查看文件将类似于:

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
        <record id="action_peniel" model="ir.actions.act_window">
            <field name="name">Peniel </field>
            <field name="res_model">peniel</field>
            <field name="view_type">form</field>
            <field name="view_mode">tree,form</field>
            <field name="search_view_id" eval="False"/>
            <field name="context">{}</field>
            <field name="help">Create new Record</field>

        </record>

        <menuitem name="Peniel" id="peniel_roof" sequence="60"/>

        <menuitem id="menu_peniel_roof" name="Peniel" parent="peniel_roof" sequence="1"/>

        <menuitem action="action_peniel" id="menu_action_peniel" parent="menu_peniel_roof" sequence="20"/>

        <record id="view_location_tree" model="ir.ui.view">
            <field name="name">peniel.tree</field>
            <field name="model">peniel</field>
            <field name="arch" type="xml">
                <tree string="Peniel">
                    <field name="name"/>
                    <field name="product"/>
                    <field name="employee"/>
                    <field name="customer"/>
                    <field name="country"/>
                    <field name="state"/>
                    <field name="date_d"/>
                    <field name="comment"/>
                </tree> 
            </field>    

        </record>


        <record id="view_location_form" model="ir.ui.view">
            <field name="name">peniel.form</field>
            <field name="model">peniel</field>
            <field name="arch" type="xml">
                <form string="Peniel">
                    <group>
                       <field name="name"/>
                       <field name="product"/>
                       <field name="employee"/>
                       <field name="customer"/>
                       <field name="country"/>
                       <field name="state"/>
                       <field name="date_d"/>
                       <field name="comment"/>
                    </group>
                </form> 
            </field>    

        </record>       

    </data>
</openerp>  

佩尼埃尔
佩尼埃尔
形式
树
{}
创造新记录
佩尼埃尔树
佩尼埃尔
佩尼埃尔形态
佩尼埃尔

它们不需要
onchange
功能。我们可以使用以下技巧

替换字段定义

country = fields.Many2one('location', string='Country', required=True)
state = fields.Many2one('state', string='State', required=True)

现在更改
.xml
侧的字段:

替换字段

<field name="state"/>



onchange
函数的代码在哪里?@Odedra已更新。。。。请检查…检查
@api.onchange('country')
缩进。
<field name="state"/>
<field name="state" domain="[('country_id', '=', country)]"/>