2015-09-29 123 views
2

美好的一天!我有我想对这里的其他选择框中选择的数据填充选择框的基础的问题是我的代码基于其他选择框的选择框的人口

的.py

licensetype = fields.Many2one('hr.licensetype','License Type') 
license = fields.Many2one('hr.license','License') 

@api.one 
@api.onchange('licensetype') 
def getlicense(self): 
    if len(self.licensetype) > 0: 
     mdlLicense= self.env['hr.license'].search([('license_name', '=', int(self.licensetype[0]))]) 
     #raise Warning(mdlLicense.ids) 
     self.license = mdlLicense.ids 

但仍填充所有许可我想填充基于所选许可证类型的许可证。这是在Odoo8

+1

license_name是整数fileds? –

+0

这是什么意思'如果len(self.licensetype)> 0:'?难道你不想只写'如果self.licensetype:'而不是? – forvas

+0

请先清除搜索条件。是license_name是整型。?也分享你想要搜索的搜索条件。 hr.licensetype和hr.license之间的关系是什么? –

回答

2

域是标准的列表,每一个标准是的(FIELD_NAME,操作者,值)三(一个列表或一个元组)。

这里,

  • FIELD_NAME: 这是字符串类型,并且必须从当前模型或使用会员点运算符通过Many2one/One2many场任何关系遍历场()。

    - 运营商:它用于比较字段值和传递值。 有效的运营商名单(>,> =,<,< =,=,!=,= ?, ILIKE,就像喜欢,= ILIKE,不喜欢,不iLike的,childs_of中,而不是在=)

  • 价值:它用于比较字段的值。

多个条件可以连接三个逻辑运算符。逻辑与,逻辑或,逻辑不是。

了解更多关于domain

您可以轻松地定义那场域实现这一目标,无需编写任何额外的代码。

只需将域放入您的xml代码即可。

<field name="licensetype" /> 
<field name="license" domain="[('licensetype','=',licensetype)]" /> 

注意

记得有一定关系之间hr.licensehr.licensetype。许可证类型必须是Many2one hr.license

它会给你想要的效果。

+0

@Empire Technologies Pvt感谢您的帮助:D,有用 –

相关问题