Odoo 8 - 批量编辑和字段域

问题描述 投票:0回答:1

我在自定义插件中有一个模型,正在使用我想要限制到特定域的字段来开发该模型。我的模型看起来像:

from openerp.osv import fields, osv

class MyModel(osv.Model):
    _name = 'mymodel'
    _columns = {
        'ui_code_version': fields.many2one(
            comodel_name='robots.software.versions', 
            string='UI Code Version', 
            domain="[('project', '=', 'ui')]"
        )
    }

直接编辑模型的实例时,似乎

domain
is 正确地将我的选择限制为 ui 项目版本,这很棒。

但是,如果我设置 Mass Editing 模块以便可以编辑 mymodel 的多个实例的

ui
版本,则不会应用域过滤器,并且我可能会错误地从其他项目中选择软件版本。 在数据库中查看,看起来域甚至没有存储在那里。

MyOdooDatabase> SELECT name, domain FROM ir_model_fields \ WHERE model = 'mymodel' AND name = 'ui_code_version' +-----------------------+----------+ | name | domain | |-----------------------+----------| | ui_code_version | <null> | +-----------------------+----------+

同样,该域不在该字段的“设置”->“技术”->“数据库结构”->“字段”条目中:

Q

:如何让批量编辑模块服从我的字段域,以便我只能选择ui项目版本?该域名是否需要存储在数据库中?如果是的话,怎么办?

编辑:根据
Bhavesh Odedra

的要求,以下是robots.software.versions

robots.software.projects
的定义:

class RobotsSoftwareVersions(osv.Model): _name = 'robots.software.versions' _description = 'Software Version' _columns = { 'name': fields.char('Name'), 'project': fields.many2one('robots.software.projects', 'Project'), 'version': fields.char('Version', help='The git tag or hash (e.g. 3.2.1)') } class RobotsSoftwareProjects(osv.Model): _name = 'robots.software.projects' _columns = { 'name': fields.char('Name'), 'upstream': fields.char('Upstream'), }


odoo odoo-8
1个回答
0
投票

domain="[('project', '=', 'ui')]"

已更新

  • project_name

    对象中添加

    robots.software.versions
    字段并使其与
    project
    相关,如

    'project_name': fields.related('project', 'name', type='char', store=True)

    
    

  • 现在更新您的域名,例如
  • domain=[('project_name', '=', 'ui')]

    
    

© www.soinside.com 2019 - 2024. All rights reserved.