按另一个选择过滤选择
Selection Filtering By Another Selection
我正在寻找一种方法来过滤后续选择,具体取决于其中哪些已被填充。
我想要一个树状结构来设置位置:
=>国家
==>州
===>区
也就是说你先进区,其他两个只有一个选择。
假设您先进入该国,您对后两者的选择会更有限。
我知道我应该使用 many2one 字段,但此时我所能做的就是多选 visible/invisible,这是非常低效的。
我是 Odoo 的新手,发现文档有些欠缺。如有任何帮助,我们将不胜感激!
我会使用运算符 =?
来处理 many2one
字段和域
例如:
class MyModel(models.Model):
_name = "my.model"
country_id = fields.Many2one(comodel_name="res.country")
state_id = fields.Many2one(comodel_name="res.country.state")
disctrict_id = fields.Many2one(comodel_name="res.country.state.district")
我不知道型号名称是否正确,但你应该已经知道了。
并在视图中使用具有上述运算符的域:
<field name="country_id"
domain="[('state_ids', '=?', state_id),('state_ids.district_ids', '=?', district_id)]" />
<field name="state_id"
domain="[('country_id', '=?', country_id),('district_ids', '=?', district_id)]" />
<field name="disctrict_id"
domain="[('state_id', '=?', state_id),('state_ids.country_id', '=?', country_id)]" />
我没有对这些 AND conditions/domains 进行任何测试。而且我不知道这三个模型的结构。我的假设是,在 res.country
-> res.country.state
和 res.country.state
-> res.country.state.district
.[=20 上存在 one2many
或 many2many
关系=]
我正在寻找一种方法来过滤后续选择,具体取决于其中哪些已被填充。 我想要一个树状结构来设置位置:
=>国家
==>州
===>区
也就是说你先进区,其他两个只有一个选择。 假设您先进入该国,您对后两者的选择会更有限。
我知道我应该使用 many2one 字段,但此时我所能做的就是多选 visible/invisible,这是非常低效的。
我是 Odoo 的新手,发现文档有些欠缺。如有任何帮助,我们将不胜感激!
我会使用运算符 =?
many2one
字段和域
例如:
class MyModel(models.Model):
_name = "my.model"
country_id = fields.Many2one(comodel_name="res.country")
state_id = fields.Many2one(comodel_name="res.country.state")
disctrict_id = fields.Many2one(comodel_name="res.country.state.district")
我不知道型号名称是否正确,但你应该已经知道了。
并在视图中使用具有上述运算符的域:
<field name="country_id"
domain="[('state_ids', '=?', state_id),('state_ids.district_ids', '=?', district_id)]" />
<field name="state_id"
domain="[('country_id', '=?', country_id),('district_ids', '=?', district_id)]" />
<field name="disctrict_id"
domain="[('state_id', '=?', state_id),('state_ids.country_id', '=?', country_id)]" />
我没有对这些 AND conditions/domains 进行任何测试。而且我不知道这三个模型的结构。我的假设是,在 res.country
-> res.country.state
和 res.country.state
-> res.country.state.district
.[=20 上存在 one2many
或 many2many
关系=]