如何在odoo中为one2many字段创建域过滤器?

时间:2016-02-08 11:10:30

标签: xml python-2.7 openerp

我将创建州名,我也将创建几个城市并分配给州 像卡纳塔克 - 班加罗尔一样 卡纳塔克,芒格洛尔
卡纳塔克-迈索尔

古吉拉特-Ahemadabad, 古吉拉特-甘地

当我在' pin_catg'中选择Karntaka时树视图中的类,即' pin_name' ' city_n'应该只有像Mangalore,班加罗尔,迈索尔这样的卡纳塔克邦城市如何为此添加域名过滤器。我有XML文件,但我想要这样的大量数据,所以写了这个类.Domain过滤器

class state_catg(osv.Model): 
    _name="state.catg" 

    _columns={
        'state_name':fields.char('State Names',size=64,required=True),
    }


class city_name(osv.Model): 
    _name="city.name" 
    _rec_name='city_name'
    _description="Define asset name" 

    _columns={
        'city_name':fields.char('City Name',size=64,required=True),
        'state_name12':fields.many2one('state.catg','State',size=64,required=True),
    }

class pin_catg(osv.Model): 
    _name="pin.catg" 

    _columns={
        'state_name':fields.many2one('state.catg','State'),
        'list123':fields.one2many('pin.name','list12'),
    }




class pin_name(osv.Model): 
    _name="pin.name" 

    _columns={
        'city_n':fields.many2one('City Name',size=64,required=True),
        'pin_code' : fields.char('Pin Code'),
        'list12':fields.many2one('pin.catg','list123'),
    }

1 个答案:

答案 0 :(得分:0)

以一种简单的方式,你只需要一个主人

class res_city(models.Model):
_name = 'res.city'

name = fields.Char('Name')
state_id = fields.Many2one('res.country.state', 'State')


#and put onchange where you use state and city like:

@api.onchange('state_id')
def _onchange_state_id(self):
    if self.state_id:
        res = {'domain': {'city_id': [('state_id', '=', self.state_id.id)]}}