我想为用户创建一个字段以选择合作伙伴类别。在他做完之后我想让他从选定的类别中选择一个合作伙伴。我怎么能做到这一点?
我有以下几个领域:
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
是我模块的未知字段。但我怎么能实现我的需要呢?
答案 0 :(得分:2)
如果category_id
字段用于res_partner
中的设置类别,那么您可以编写..
为此,您需要在视图中编写partner_category
...如果您不想,请将其隐藏。
<field name="partner_category"/>
<field name="partner_adress" domain="[('category_id','=',partner_categories)]"/>
答案 1 :(得分:1)
你得到ValueError: Invalid field 'res.partner.category' ...
因为'res.partner.category'
不是字段,而是模型......就像你在其他问题中所说的一样,你需要使用onchange
方法,首先,当用户选择一个触发onchange的类别时,在其中填充另一个字段(partner_adress
)按所选类别过滤。让我为您和I'll be back
搜索一个很好的例子来编辑这个答案!