取决于用户选择的动态域(odoo 8)
Dynamic domain depending on user selection (odoo 8)
我需要的:
我想为用户创建一个字段以 select 一类合作伙伴。在他做出决定后,我想让他 select 成为 selected 类别的合作伙伴。我怎样才能做到这一点?
我做了什么:
我有休耕地:
partner_categories = fields.Many2one('res.partner.category', string="Partners Categories")
partner_category_name = fields.Char(related='partner_categories.name', string="Choosen category name")
partner_adress = fields.Many2one('res.partner', string="Partner from selected category")
在 xml 我有这些行:
<field name="partner_categories"/>
<field name="partner_category_name"/>
<field name="partner_adress" domain="[('res.partner.category','=', 'partner_category_name')]" attrs="{'invisible': [('partner_category_name', '=', 'False')]}"/>
但这不起作用。我收到错误:
ValueError: Invalid field 'res.partner.category' in leaf "<osv.ExtendedLeaf: ('res.partner.category', 'ilike', 'partner_category_name') on res_partner (ctx: )>"
当然这是正常的,因为我无法继承 res.partner
模块以便我可以访问它的所有字段,所以 res.partner.category
是我模块的未知字段。但是我怎样才能达到我所需要的呢?
你得到 ValueError: Invalid field 'res.partner.category' ...
因为 'res.partner.category'
不是一个字段,它是一个模型...由于你在另一个 Q 中说过,你需要使用 onchange
方法,首先当用户 select 类别触发 onchange 时,在其中填充另一个字段 (partner_adress
) 按类别 selected 过滤。让我为您搜索一个很好的示例,然后 I'll be back
编辑此答案!
如果 category_id
字段用于 res_partner
中的集合类别那么你可以写..
为此,您需要在视图中写入 partner_category
...如果您不想,则将其设置为不可见。
<field name="partner_category"/>
<field name="partner_adress" domain="[('category_id','=',partner_categories)]"/>
我需要的:
我想为用户创建一个字段以 select 一类合作伙伴。在他做出决定后,我想让他 select 成为 selected 类别的合作伙伴。我怎样才能做到这一点?
我做了什么:
我有休耕地:
partner_categories = fields.Many2one('res.partner.category', string="Partners Categories")
partner_category_name = fields.Char(related='partner_categories.name', string="Choosen category name")
partner_adress = fields.Many2one('res.partner', string="Partner from selected category")
在 xml 我有这些行:
<field name="partner_categories"/>
<field name="partner_category_name"/>
<field name="partner_adress" domain="[('res.partner.category','=', 'partner_category_name')]" attrs="{'invisible': [('partner_category_name', '=', 'False')]}"/>
但这不起作用。我收到错误:
ValueError: Invalid field 'res.partner.category' in leaf "<osv.ExtendedLeaf: ('res.partner.category', 'ilike', 'partner_category_name') on res_partner (ctx: )>"
当然这是正常的,因为我无法继承 res.partner
模块以便我可以访问它的所有字段,所以 res.partner.category
是我模块的未知字段。但是我怎样才能达到我所需要的呢?
你得到 ValueError: Invalid field 'res.partner.category' ...
因为 'res.partner.category'
不是一个字段,它是一个模型...由于你在另一个 Q 中说过,你需要使用 onchange
方法,首先当用户 select 类别触发 onchange 时,在其中填充另一个字段 (partner_adress
) 按类别 selected 过滤。让我为您搜索一个很好的示例,然后 I'll be back
编辑此答案!
如果 category_id
字段用于 res_partner
中的集合类别那么你可以写..
为此,您需要在视图中写入 partner_category
...如果您不想,则将其设置为不可见。
<field name="partner_category"/>
<field name="partner_adress" domain="[('category_id','=',partner_categories)]"/>