首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Openerp获取合作伙伴类别标签

Openerp获取合作伙伴类别标签
EN

Stack Overflow用户
提问于 2014-11-13 08:17:48
回答 1查看 287关注 0票数 0

我的自定义模块中有两个字段:

代码语言:javascript
复制
'originator_id' : fields.many2one("res.partner",string="Originator", required=True),
'originator_category_ids' : fields.many2many('res.partner.category',
                                             'module_category_rel',
                                             'module_id',
                                             'category_id',
                                             'Categories'),

我想根据选择的originator_id设置many2many字段originator_category_ids的域名,这个域名是一个partner_id。我编写了一个onchange方法来动态定义域:

代码语言:javascript
复制
def get_domain_originator_category_ids(self,cr,uid,ids,originator_id,context=None):
    if originator_id:
        obj = self.pool.get('res.partner').browse(cr, uid, originator_id)
    return {'domain':{'originator_category_ids':[('id','in',obj.category_id)]}}

但是上面的不起作用。

您的支持将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-11-13 20:12:32

这对我来说是有效的,但在我找到更好的解决方案之前,这是一个暂时的解决方案。解决方案包括在类别上循环,并与partner_ids字段中选择的合作伙伴进行比较:

代码语言:javascript
复制
def get_domain_originator_category_ids(self,cr,uid,ids,originator_id,context=None):

    category_obj = self.pool.get('res.partner.category')
    category_ids = category_obj.search(cr, uid,[], context=context)
    res=[]
    for cateory in category_obj.browse(cr, uid, category_ids, context=context):
        for partner_id in cateory.partner_ids:
            if partner_id.id == originator_id:
                res.append(cateory.id)

    return {'domain':{'originator_category_ids':[('id','in',res)]}}

如果你有更好的解决方案,请把它贴出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26899172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档